Python 3.x 我们如何称呼自我(self)下的self.n?它是实例属性吗?
我猜self.n不是实例属性,因为它不出现在构造函数部分下。你怎么称呼它Python 3.x 我们如何称呼自我(self)下的self.n?它是实例属性吗?,python-3.x,Python 3.x,我猜self.n不是实例属性,因为它不出现在构造函数部分下。你怎么称呼它 class PowTwo: """Class to implement an iterator of powers of two""" def __init__(self, max = 0): self.max = max def __iter__(self): self.n = 0 return self def __next_
class PowTwo:
"""Class to implement an iterator
of powers of two"""
def __init__(self, max = 0):
self.max = max
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n <= self.max:
result = 2 ** self.n
self.n += 1
return result
else:
raise StopIteration
第二类:
“”类来实现迭代器
二次幂
定义初始值(自,最大值=0):
self.max=max
定义(自我):
self.n=0
回归自我
定义下一个(自我):
如果self.n如评论员所说,它仍然是一个实例属性
Python类是完全动态的,这意味着您可以随时定义新的实例属性,例如本例中的self.n=0
。作为一种良好的编程风格,它们通常在\uuuu init\uuuuu
中定义,但这只是一种惯例
在您的代码示例中,最好在\uuuu init\uuuuu
中定义self.n
——这样您就不会有一个没有定义self.n
的不一致类实例。即:
def\uuuu init\uuuuuu(self,max=0):
self.n=无
self.max=max
定义(自我):
self.n=0
回归自我
此外,最好将self.n
重命名为self,以记录它是私人使用的。它仍然是一个实例属性。我可能会添加self.n
应命名为self.\u n
以记录该属性被用作私人属性。