__name__是用来识别一个模块是直接运行还是作为一般的模块被导入的状态。

当一个模块是直接运行时,__name__就等于__main__,如果它是作为一般模块被导入时,__name__就是模块本身的名字。

示例:

if \_\_name\_\_ == "\_\_main\_\_": run()

self是一种约定。在Python中,类方法的第一个参数表示对象本身,在Python中一般使用self。你也可以使用this.

示例:
a是你想用的对象,但self是一种约定。在调用一个对象的方法时,对象本身被作为self参数传入。如:

class A: def p(self, name): print name a=A() a.p('aa')

这时,相当于A.p(a, ‘aa’)