python面向对象的魔法方法详解

Beth ·
更新时间:2024-09-20
· 598 次阅读

什么是魔法方法

我们都知道我们在创建一个类的时候python默认是继承与object这个基类的,这个基类里面包含的方法就是我们常说的魔法方法,要想学好python中面向对象的编程,了解这些魔法方法是必要的,接下来我们通过其中的dir()方法,将我们创建类的所有方法打印出来,方便我们研究:

class cesi(object): """这是一个用于测试的类""" def __init__(self, name, age): super(cesi, self).__init__() self.name = name self.age = age def run(self): self.name = "Tom" def main(): t = cesi("Jhon", 18) for method in dir(t): print(method) if __name__ == "__main__": main()

在其中我们使用了dir()方法,那么他的作用应该很明显了,就是获得我们类的方法列表,包括父类方法

__class__:展示当前对象所属的类及父类 __delattr__:delattr(x, 'foobar') 相等于 del x.foobar __dict__:以字典的形式展示当前对象的属性 __dir__:返回对象方法的列表 __doc__:描述类的信息 __eq__:拥有__eq__方法的对象支持相等的比较操作 __format__:格式化字符串的方法 __ge__:可比较的类,跟__eq__同属一类内置方法 __getattribute__:获取一个计算属性(无条件的) __gt__:可比较的类 __hash__:拥有此属性的对象能够进行hash __init__:创建对象过程进行初始化 __init_subclass__: __le__:比较属性 __lt__:比较属性 __module__:查看该对象属于哪个模块 __ne__:比较属性 __new__:在对象被创建的时候回自动调用,返回内存空间 __reduce__: __reduce_ex__: __repr__:将对象转化为供解释器读取的形式 __setattr__:设置某属性的值 __sizeof__:返回地址 __str__:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值 __subclasshook__:控制某个类是否是该类的子类 __weakref__: 方法详解 类的基础方法

原创文章 48获赞 0访问量 5502 关注 私信 展开阅读全文
作者:Elegantmadman



python面向对象 魔法方法 方法 对象 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号