python之面向对象知识点总结

"""
面向对象 三大特性
封装 继承 多态
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
@classmethod
def 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__对对象进行输出时,输出的时该方法的返回值

"""

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值