我正在通過代碼爲threading
模塊(<Python Home>/lib/threading.py
)上的Active Python 2.7.2 32位爲Windows。在class Thread
的__init__
功能,存在很多變數定義:線程模塊的__init__中定義的變量如何重命名爲_Thread_ <變量名稱>
self.__target = target
self.__name = str(name or _newname())
self.__args = args
self.__kwargs = kwargs
self.__daemonic = self._set_daemon()
self.__ident = None
self.__started = Event()
self.__stopped = False
self.__block = Condition(Lock())
self.__initialized = True
這裏是我如何打電話的class Thread
的__init__
功能: -
class ThreadWithReturnValue(Thread):
def __init__(self, group=None, target=None, name=None,
args=(), kwargs={}, Verbose=None):
Thread.__init__(self, group, target, name, args, kwargs, Verbose)
self._return = None
print 'in init: ', self._Thread__target
我不明白,變量self._Thread__target
是在class Thread
的__init__
函數中的任何地方都未初始化。但是,如果我在自己的__init__
函數中打印此變量,則會顯示class Thread
的函數self.__target
的實際值。
另外,我嘗試過編輯threading
模塊,並把此行的class Thread
的__init__
函數的最後一行: -
print 'in init of Thread class in threading: ', self._Thread__target
不過,我可以看到正在打印的價值和解釋不會顯示任何錯誤。所以,我試圖找到可能正在進行重命名的任何功能。但是,找不到它。
這發生在class Thread
的__init__
函數中定義的所有其他變量。我想知道像self.__target
這樣的變量是如何被重命名爲self._Thread__target
。
啊哈!正確地指出。感謝您的及時迴應。 – GodMan