2011-06-14 43 views
3

什么是以下名称,当我第一次开始我的Python的壳呢?他们并不像功能从__builtins__蟒蛇全局变量__name__(新手问题)

>>> dir(__name__) 

['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', 
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', 
'__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', 
'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', 
'__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 
'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 
'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 
'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 
'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 
'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 
'zfill'] 

回答

8

__name__是字符串,这些字符串的方法。这是模块的名称或顶层的'__main__'。因此,这种习惯用法通常出现:

if __name__ == '__main__': 
    # this file was called directly, not imported 
    main() 
5

dir(__name__)示出的__name__的属性,并且由于__name__是一个字符串,它示出了str类的属性。大多数列出的属性都是方法。您可以使用help()获得更多信息:

>>> help(str.index) 
Help on method_descriptor: 

index(...) 
    S.index(sub [,start [,end]]) -> int 

    Like S.find() but raise ValueError when the substring is not found. 
+0

谢谢,这是我正在寻找的答案。 – chen 2011-06-14 22:13:50