[英]Python method defaults based off of class __init__ args
我希望將類中的方法默認值設置為通過__init__
方法傳遞的值。 像這樣:
class Foo(object):
def __init__(self, loc=None):
self.loc = loc
def test(self, loc=self.loc):
print loc
test = Foo()
test.test()
>>> None
test = Foo('foobar')
test.test()
>>> foobar
這有可能還是實現這一目標的另一種方式?
編輯:我知道當前的代碼是不可能的,但像這樣的功能是我正在尋找的東西。
謝謝
默認參數值在定義范圍內的函數定義點進行評估,但是self
是僅在函數調用期間可用的參數。
看一個例子:
i = 5
def f(arg = i): print arg
i = 6
f()
將打印5。在python-tutor上可視化 。
將參數默認設置為None
並在代碼中為此添加測試是一種常見的模式:
def test(self, loc = None):
if loc is None:
loc = self.loc
print loc
做這樣的事情:
def test(self, loc = None):
if loc is None:
loc = self.loc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.