当前位置:   article > 正文

python笔记:super(),__getitem()__,__call()___super().__call__

super().__call__

目录

Q1:super(NetworkBlock, self).__init__()什么意思

Q2:__call__() 类的实例圆括号自动调用

Q3:__getitem__() 类的实例 方括号自动调用

Q4:没有双下划线方法时,普通的调用类的方法

总结


Q1:super(NetworkBlock, self).__init__()什么意思

  1. class NetworkBlock(nn.Module):
  2. # 定义网络块,由多个BasicBlock组成
  3. def __init__(self, nb_layers, in_planes, out_planes, block, stride, dropRate=0.0):
  4. # 初始化网络块
  5. super(NetworkBlock, self).__init__()
  1. (父类是谁)`NetworkBlock`类的父类是`nn.Module`
  2. (类的继承)`NetworkBlock`类是通过继承`nn.Module`类而创建的。
  3. (调用父类的构造函数,初始化父类的实例)通过调用`super(NetworkBlock, self).__init__()`,实际上是在调用`nn.Module`类的构造函数,以确保在创建`NetworkBlock`对象时正确地初始化`nn.Module`类的相关属性和方法。
  4. (调用父类的构造函数,初始化父类的实例)`super(NetworkBlock, self).__init__()`这行代码的意思是调用父类(或者超类)的`__init__`方法,它是用来初始化父类的实例。
  5. 构造函数和初始化函数是一个东西

类的继承

调用父类的构造函数,并初始化父类的实例

Q2:__call__() 类的实例圆括号自动调用

  1. class Greeter:
  2. def __init__(self, name):
  3. self.name = name
  4. def __call__(self):
  5. print(f"Hello, {self.name}!")
  6. # 创建一个Greeter类的实例
  7. greeter = Greeter("Alice")
  8. # 调用实例,实际上会调用__call__()方法
  9. greeter()

Q3:__getitem__() 类的实例 方括号自动调用

  1. class CustomList:
  2. def __init__(self):
  3. self.items = []
  4. def __getitem__(self, index):
  5. return self.items[index]
  6. def __len__(self):
  7. return len(self.items)
  8. def add_item(self, item):
  9. self.items.append(item)
  10. # 创建一个CustomList类的实例
  11. my_list = CustomList()
  12. # 添加一些元素到列表中
  13. my_list.add_item("Apple")
  14. my_list.add_item("Banana")
  15. my_list.add_item("Orange")
  16. # 使用[]索引操作访问元素,实际上会调用__getitem__()方法
  17. print(my_list[1]) # 输出:Banana

Q4:没有双下划线方法时,普通的调用类的方法

传参数看init

调用方法加.(点)

  1. class Person:
  2. def __init__(self, name):
  3. self.name = name
  4. def greet(self):
  5. print(f"Hello, my name is {self.name}!")
  6. # 创建一个Person类的实例
  7. person = Person("Alice")
  8. # 调用实例的方法来实现类似调用的效果
  9. person.greet()

总结

类的实例叫对象

类的实例初始化时,需要传的参数,要看init

对象 = 类(......)   ....需要看init需要什么

对象调用类的方法

 __call__()方法:对象()

__getitem__()方法:对象[]

对象使用类的普通方法:

对象.啥啥啥    啥啥啥是类定义的

双下划线:魔术方法,严格的私有方法

单下划线:不严格的私有方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/208609
推荐阅读
相关标签
  

闽ICP备14008679号