假设我有一个类定义,它接受一些参数并用它创建附加数据,所有这些都在__init__
方法中:
class Foo():
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
self.bar = generate_bar(x, y, z)
def generate_bar(self, x, y, z):
return x+y+z
我只想在创建类的实例时运行generate_bar()
方法一次,因此该方法在实例上是不可调用的。有没有一种更简洁的方法来确保一个方法只对__init__
可用,或者我只需要假设任何看过我的代码的人都会明白,在任何情况下,对类的实例调用generate_bar()都是不合适的?你知道吗
如果不使用任何实例状态,只需将其作为单独的函数:
根据惯例,前导下划线表示它是一个内部函数,不能由模块的外部使用者使用。你知道吗
您可以将函数嵌套在
__init__
中,但这实际上对可读性没有帮助:这里
generate_bar()
甚至不需要参数,它可以从封闭范围访问x
、y
和z
。你知道吗对于“隐藏”函数,通常使用一个下划线来表示您的意图:
它们仍然可以访问,但无法通过制表符完成显示。你知道吗
看到这个了吗
您可以通过tab completion验证对象看不到函数栏
相关问题 更多 >
编程相关推荐