python之面向对象知识点总结

来源:互联网 发布:我的失恋 知乎 编辑:程序博客网 时间:2024/06/18 05:39
"""面向对象 三大特性封装 继承 多态python 本身是一种弱类型语言,本身就支持多态继承:多重继承 执行某个方法寻找方法的规律: 从下往上 从左往右始终记得self对象代表的是谁,那个对象调用的方法,self酒代表的是谁通过super(类,self).__init()可以调用父类的构造方法还可以通过类名.__init__(self)方法也可以调用父类的构造函数 但不推荐使用面向对象的成员 以及 修饰符同样也可以通过反射机制来访问类或者对象的属性和方法module_str = input("请输入导入的模块名:")modu = __import__(module_str)cls = input("请输入类型名:")if hasattr(modu,cls):    C = getattr(modu,cls)    obj = C()fun_str = input("请输入要调用的函数:")if hasattr(obj,fun_str):    fun = getattr(obj,fun_str)    fun();attr_str = input("请输入要查看的属性:")if hasattr(obj,attr_str):    attr = getattr(obj,attr_str)    print(attr)#################tesy.py############class A:    def __init__(self):        self.name = "ylk"        print("AAAAAA")    def show(self):        print("BBBB")类的静态成员与方法注意python与其他语言的差异,并没有单独声明类里面的成员因此直接将成员写在类里面就表示是类的静态成员而类的静态方法是通过装饰器去完成的@staticmethod即可表示是类的静态方法,通过调用的是python的内置函数staticmethod()也可以通过时候带self参数来区分,只有非静态方法才需要类的实例访问时,既可以通过类也可以通过对象去访问,但不推荐 ,在访问是最好通过类去访问面向对象之类方法python不同于其他语言,其中还包含类方法,通过装饰器@classmethod实质上调用python内置函数classmethod()函数实现将一个方法声明为类方法的时候,至少有一个参数cls@classmethoddef f(cls):    print(cls)通过类调用类方法时,自动会将类的名称传入@property将类的方法的访问方式变为与类的成的成员变量的访问方式一样class A:    @property    def fun_name(self):        ...    @fun_naem.setter    def fun_name(self,value):        print(value)obj = A()obj.fun_name 直接调用fun_naem方法obj.name = 123通过@property将方法变为成员变量的访问方式通过@fun_name.setter用来修改@property装饰的函数python不同于其他语言访问控制只分为私有和公有的私有的只能在类的内部进行访问 公有的都可以访问python是通过__两下划线来进行区别公有和私有的,并没有public和private关键字__call__(self,*arg,**kwargs)在生成对象后加上()调用的是该方法对象[""]调用的是__getitem__(self,item)对象[""] = value 调用的是__setitem__(self,key,value)del 对象[""]调用的是__delitem__(self,item)在python3.x版本中切片操作也是执行的这几个函数传递参数的时,先将切片的内容传递给slice对象,然后传递的是slice对象__dict__列出类与对象的所有成员__str__对对象进行输出时,输出的时该方法的返回值"""