Python-FAQ-__init__、super、__call__、self

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)


4 参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值