2024-05-13 22:25:11 发布
网友
例如:
class Bird: def __init__(self): self.sound = "chirp!" def reproduce_sound(self): if self: print(self.sound) bird = Bird() bird.reproduce_sound()
{}是什么意思?什么情况下reproduce_sound函数调用不打印任何内容
reproduce_sound
它检查实例的真值,仅当它为True时才打印。在您的示例中,支票没有任何用处,总是打印一些东西。您可以重写__bool__方法以更改其默认行为
True
__bool__
class Bird: ... def __bool__(self): return bool(self.sound)
然后:
b = Bird() b.reproduce_sound() # Prints "chirp!" b.sound = 0 # or any falsy value, such as None or "" b.reproduce_sound() # Won't print anything because b == False
它检查实例的真值,仅当它为
True
时才打印。在您的示例中,支票没有任何用处,总是打印一些东西。您可以重写__bool__
方法以更改其默认行为例如:
然后:
相关问题 更多 >
编程相关推荐