-2
一個簡單的例子使用一個對象作爲本身是這樣的:如何在類
class abs_obj:
def __init__(self, acceptType = abs_obj):
# do something
pass
這給錯誤消息:
NameError: name 'abs_obj' is not defined
任何建議?
一個簡單的例子使用一個對象作爲本身是這樣的:如何在類
class abs_obj:
def __init__(self, acceptType = abs_obj):
# do something
pass
這給錯誤消息:
NameError: name 'abs_obj' is not defined
任何建議?
這裏的問題是,直到所有方法都編譯完成之後,才真正創建類,但是在編譯時計算一次默認值。
可能可以指定一個不同的默認值,然後通過操作函數的func_defaults屬性將其更改爲所需的值。但是這很醜陋,並且不能保證可以在所有Python實現中工作。
的更常見的方式來解決這樣的問題是:
def __init__(self, acceptType = None):
if acceptType is None:
acceptType = abs_obj
# do something
pass
如果沒有一個是該參數的有效值,你就必須選擇一些其它的值作爲默認值。
如果我嘗試這樣:acceptType ='abs_obj',那麼acceptType只是一個字符串。 –
這個問題不是關於註釋,不知道爲什麼要將它作爲[this one]的副本關閉(http://stackoverflow.com/q/33533148/364696)。 – ShadowRanger
這聽起來像一個XY問題。你使用'acceptType'做什麼?你可以使用'self .__ class__'(或'type(self)')來獲得對'self'實際類的引用。你需要人們能夠通過一個完全不同的課程嗎? – ShadowRanger