python 魔术方法

1、__repr__函数

  • 通常__repr__函数是应用于实例化类中
  • print(实例化类),直接打印出对应函数返回值
  • 没有自定义__str__函数时,str(实例化类) 可以调用__repr__
  • repr(实例化类),调用__repr__
class A:
    def __repr__(self):
        # print("哈哈哈")
        return "输出repr"

B = A()
C = repr(B)
print(C)
# 输出repr

C1 = str(B)
print(C1)
# 输出repr

print(B)
# 输出repr

2、__str__函数

  • 同时定义__repr__和__str__,print(实例化类) 时,调用的是__str__方法
  • __str__可以被str(实例化类)调用,不能被repr(实例化类)函数调用
class A:
    def __repr__(self):
        return "输出repr"

    def __str__(self):
        return "输出str"

B = A()

C1 = str(B)
print(C1)
# 输出str

print(B)
# 输出str

3、__iter__函数 和__next__函数

  • __iter__和__next__一般用于共同实现一个迭代器
  • __iter__的作用主要是先变成一个迭代器对象,调用下一个元素是调用__next__的函数,当是最后一个函数时,必须抛出StopIteration来结束迭代
  • __iter__加yield 也可以生成一个迭代器来迭代
__iter__ 加 __next__
class A:
    def __iter__(self):
        self.a = 0
        return self

    def __next__(self):
        self.a += 1
        if self.a > 10:
            raise StopIteration
        return self.a

B =  A
  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值