簡體   English   中英

Python方法默認基於__init__ args類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM