1
我有一個類應該是這個類的一個實例。我不能在聲明行創建一個實例,因爲python解釋器不知道如何在那個時候構造對象。有一種可能的解決方法:在類聲明後進行初始化。python中的類變量初始化
class A(object):
static_variable = None
def some_method(self, a=static_variable):
print a
A.static_variable = A()
但我需要使用該類變量作爲默認參數。這樣可以解決這個問題:
def some_method(self, a=None):
a = a if a else A.static_variable
print a
但是,它看起來對我來說非常不合理。任何關於如何使用這種靜態變量作爲默認參數的建議將不勝感激。
使用'param = None'然後測試'如果parem是None'絕對是pythonic。 –
爲什麼實例需要成爲該類的一個變量?爲什麼不直接在模塊級別定義它? –
@DanielRoseman是的,我可以在模塊級別定義它,但仍不能解決默認參數的問題。 – midas