出於純粹的好奇心:有沒有一種簡單的方法(不超過兩行代碼)來訪問函數的指定屬性的字典/列表在那個函數中)?python的函數屬性:獲取所有分配屬性的列表/字典
例如爲:
def func(*args):
print("# of arguments = {0} ".format(len(args))) # normal arguments
print("# of attributes = {0}".format(len(func_attrs))) # function-attributes
func()
func.func_attr_1 = 'How do i get all attributes from within the associated function?'
func.func_attr_2 = 'How do i get all attributes from within the associated function?'
由於功能是可調用的對象有可能爲他們提供屬性,但 似乎有不蜜蜂的方式來訪問一個簡單的方法,這些屬性的列表。
locals()
和globals()
沒有幫助。 dir()
似乎要做的伎倆,但你必須過濾你的屬性。如果您事先不知道屬性名稱,這有點不方便。
如果我可以指定一個屬性那裏必須..應該是一種方式來訪問其內部的目錄。
UPDATE:
我完全以忘了實際調用/調用=實例函數試圖訪問該屬性之前。 ... 我的錯! - sry和thx的答案;-)
自然我試過func.__dict__
和dir(func)
,但只是沒有實例化函數對象之前這樣做......並在我原來的測試我最初定義的屬性從內函數,然後沒有調用該函數,但試圖從外部範圍訪問函數屬性 - 這自然失敗了!
我認爲這值得問爲什麼你需要這個。 100箇中的99個,保持外部狀態(通過屬性)的函數根本不應該是函數。在那一點上,你可能應該使用一個類... – mgilson
正如我在開頭所述:出於純粹的好奇心! –