Possible Duplicate:
default value of parameter as result of instance method
虽然可以在 python 中为函数参数设置默认值:
def my_function(param_one='default')
...
似乎无法访问当前实例(self):
class MyClass(..):
def my_function(self, param_one=self.one_of_the_vars):
...
我的问题:
- 我无法访问当前实例来设置函数中的默认参数是真的吗?
- 如果不可能:原因是什么?是否可以想象在未来的 python 版本中这将成为可能?
最佳答案
写成:
def my_function(self, param_one=None): # Or custom sentinel if None is vaild
if param_one is None:
param_one = self.one_of_the_vars
而且我认为可以肯定地说这在 Python 中永远不会发生,因为 self
在函数启动之前并不真正存在......(你不能引用它,在它自己的定义 - 就像其他一切一样)
例如:你不能这样做 d = {'x': 3, 'y': d['x'] * 5}
关于python - 使用当前类实例的属性作为方法参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195989/