可能的重复:
作为实例方法结果的参数默认值 https://stackoverflow.com/questions/13075044/default-value-of-parameter-as-result-of-instance-method
虽然可以在 python 中为函数参数设置默认值:
def my_function(param_one='default')
...
似乎无法访问当前实例(自身):
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}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)