我正在查看适用于 Windows 的 Active python 2.7.2 32 位上的threading
module( ) 代码。<Python Home>/lib/threading.py
在 的__init__
函数中class 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
这是我调用以下__init__
功能的方式class Thread
:-
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
没有在__init__
函数的任何地方初始化class Thread
。但是,如果我在自己的函数中打印此变量,则会显示from函数的__init__
实际值。self.__target
class Thread
__init__
另外,我尝试编辑threading
模块并将这一行作为__init__
函数的最后一行class Thread
:-
print 'in init of Thread class in threading: ', self._Thread__target
尽管如此,我仍然可以看到正在打印的值,并且解释器没有向我显示任何错误。所以,我试图找到任何可能进行重命名的函数。但是,找不到。
__init__
函数中定义的所有其他变量都会发生这种情况class Thread
。我想知道变量之类self.__target
的重命名为self._Thread__target
.