Python面向对象

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Python面向对象脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

面向对象编程——Object Oriented PRogramming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,例如:JAVA。
面向过程把函数作为程序的基本单元,例如:c语言

class PErson(object):
    def __init__(self,name,age)    #__init__初始化方法,self为必传,指向创建的实例本身
        self.__name=name            #__name为私有属性,无法直接访问,可以添加getset方法,或者通过_Person__name访问
        self.__age=age
    def set_name(self,name)
        return self.__name=name
    def get_name(self)
        return self.__name
    def print_info(self)
        print('Name:-> ',self.name,'Age:-> ',self.age)

使用Person类:

    psn=Person('jim',22)        #创建Person实例
    psn.print_info()            #使用方法

继承:

class Student(Person):
    def get_name(self):
        return self.__name+'  --'

测试:

stu=Student('jim',22)
stu.print_info()        #Name:-> jimAge:-> 22 可以使用父类方法
stu.get_name()          #jim  --    覆盖父类的方法

多态

def run_twice(Person):
    Person.get_name()

测试

run_twice(psn)    #jim
run_twice(stu)    #jim  -- 在这里,静态语言需要传入的必须是psn/stu,而动态语言只要传入有get_name()方法的对象就可以

获取对象的信息(反射机制):
type() 用来判断基本类型
types模块中的常量 用来判断一个对象是否是函数
使用isinstance(实例,类) 用来判断实例是否是类的子类或者自己的实例
isinstance([1, 2, 3], (list, tuple)) 判断前者是否是后者中的一个
hasattr(对象,属性) 判断是否存在此属性
setattr(对象,属性) 为对象设置属性
getattr(对象,属性) 获取对象的属性

type('123')==str    #True
type('123')==type('456')    #True
type(run_twice))==types.FunctionType    #True
type(abs)==types.BuiltinFunctionType
type(lambda x: x)==types.LambdaType
type((x for x in range(10)))==types.GeneratorType

脚本宝典总结

以上是脚本宝典为你收集整理的Python面向对象全部内容,希望文章能够帮你解决Python面向对象所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。