1 需求
2 接口
3.* __init__方法
3.* super方法
class A:
def __init__(self):
print("A")
class B(A):
def __init__(self):
super().__init__() # 等同于 super(B, self).__init__()
print("B")
b = B() # 输出: A \n B
3.* __init__方法、__call__方法、普通方法 区别
__init__
是 Python 中的一个特殊方法(也称为魔法方法),用于类的初始化。当创建一个类的实例时,__init__
方法会被自动调用,它主要用于初始化对象的属性。- `__call__`也是一个特殊方法,它使得类的实例可以像函数一样被调用。当在一个类的实例后面加上括号并传入参数时,如果该类定义了`__call__`方法,那么这个方法就会被调用。
class MyClass:
def __init__(self):
print("__init__")
def __call__(self, x):
print("__call__ " + x)
def normal_method(self, x):
print("normal_method " + x)
if __name__ == "__main__":
MyClass()
print("***** ***** ***** *****")
MyClass()("hello")
print("***** ***** ***** *****")
MyClass().normal_method("word")
案例:
from PIL import Image
from torchvision import transforms
image = Image.open("./data/train/1_1.jpg")
transform = transforms.ToTensor()
image_tensor = transform(image)
print(image_tensor.shape)