Python 实例方法

__call__

该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。

实例

class A:
	def __init__(self, b):
		self.b = b

    def __call__(self, a):
        print(a)
    
    
# 注意下面,call使我们可以像调用普通函数一样调用实例,而不是创建类时就执行call,与init不冲突!!!
a = A()
a("调用!")

"""
调用!
"""

__getitem__

__getitem__作用是重载[],在pytorch自定义数据集的实现中,通过索引返回一张图片和对应标签。
实例:

class A:

    def __init__(self):
        self.lst = [1, 2, 3, 4]

    def __getitem__(self, index):
        return self.lst[index]


a = A()
print(a[1])  # result: 2

__next____iter__

将对象变成一个可迭代对象。可以适用next函数调用。

class ite:
    def __init__(self, b):
        self.b = b

    def __next__(self):
        self.b += 1
        return f"this is {self.b}"
    
    def __iter__(self):  # 没有好像也可以用next调用,问题来了,这个究竟是啥作用?
    	return self


c = ite(0)
for i in range(3):
    print(next(c))

"""res
this is 1
this is 2
this is 3
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白三点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值