str 方法
class A():
def __str__(self): # 重写__str__方法,功能:自动打印以下内容
return "这是__str__方法"
a = A() # 实例化方法
print(a) # 执行__str__方法
这是__str__方法
dict 方法
class B():
def __init__(self, name, age):
self.name = name
self.age = age
b = B("Jack", 20)
print(b.__dict__) # 类属性转字典
{'name': 'Jack', 'age': 20}
bases base mro 属性
class C():
pass
class D():
pass
class E(C, D): # 继承C、D类
pass
print(E.__bases__) # 输出E类的所有父类的元组
(<class '__main__.C'>, <class '__main__.D'>)
print(E.__base__) # 输出E类的第一个父类的元组(基类)
<class '__main__.C'>
print(E.__mro__) # 输出E类的继承关系层次关系元组
(<class '__main__.E'>, <class '__main__.C'>, <class '__main__.D'>, <class 'object'>)
add 方法
class F():
def __init__(self, name):
self.name = name
def __add__(self, other): # 重写__add__方法
return self.name + other.name
f1 = F("张三") # 实例化对象
f2 = F("李四") # 实例化对象
print(f1 + f2) # 执行__add__方法
张三李四
print(f1.__add__(f2)) # 执行__add__方法
张三李四
call 方法
该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。
class F():
def __call__(self):
print("自动调用了__call__方法")
f = F() # 实例化对象
f()
自动调用了__call__方法
f.__call__()
自动调用了__call__方法