对象 方法

对象

创建

支持多继承,继承的父类可以是多个,不写默认继承object

class 类名(父类):
    '''说明文档'''
    pass
d = 类名()
d.run()  # 直接用类继承的父类的方法

私有化

  • 模块私有化,在导包时不被导走

在属性或方法前加一个下划线_就ok

  • 完全私有化,只能自己访问,在方法或属性前加下划线__

是一个假私有化,其实是在内存中改个名字,可以访问,用_类名.__属性/方法来访问,但不建议用

方法

与函数不同,函数是可以直接调用,方法只能依靠类或对象来调用

方法又分为:

  • 静态方法:与函数一样,与类和对象无关
@staticmethod   # -->通过这个实现
def f()
  • 类方法:第一个参数cls,指类本身
@classmethod   # -->通过这个实现
def f()
  • 实例方法:第一个参数self,调用时需传递实例给self
def f(self,age,name):
    self.age = age
    self.name = name

魔法方法

python已包含,被下划线包围

常用

方法 解释 eg
__ new __(cls [,...]): 可用于单例模式,创建实例时首先调用的方法(构造方法)
__ init __(self [,...]): 对象初始化方法
__ del __(self): 销毁时调用 del(A)
__ len __(self):
__ bool __(self):
__ str __(self): 用于将值转化为人阅读的形式
__ repr __(self): 解释器
__ getattr __(self,name): 可以在此方法中定义,当用户试图获取一个不存在的属性该怎么执行 可在此方法中定义 print("该属性不存在")
__ setattr __(self,name,value): 当一个属性被设置时的行为
__ getattribute __(self,name): 当一个属性被访问时的行为,属性访问拦截器(封装) 若不想被访问到:print("无法访问") return...
posted @ 2022-04-22 19:40  valder-  阅读(49)  评论(0)    收藏  举报