常常会在代码的最下面看到if __name__ == '__main__':,如今就来介 绍一下它的做用.python
模块是对象,而且全部的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。若是 import 一个模块,那么模块__name__ 的值一般为模块文件名,不带路径或者文件扩展名。可是您也能够像一个标准的程序样直接运行模块,在这 种状况下, __name__ 的值将是一个特别缺省"__main__"。web
在cmd 中直接运行.py文件,则__name__的值是'__main__';app
而在import 一个.py文件后,__name__的值就不是'__main__'了;ide
从而用if __name__ == '__main__'来判断是不是在直接运行该.py文件函数
-
- class Test:
- def __init(self):pass
- def f(self):print 'Hello, World!'
- if __name__ == '__main__':
- Test().f()
-
- 你在cmd中输入:
- C:>Python Test.py
- Hello, World!
- 说明:"__name__ == '__main__'"是成立的
- 你再在cmd中输入:
-
- C:>python
-
- >>>import Test
-
- >>>Test.__name__
-
- 'Test'
-
- >>>__name__
-
- '__main__'
-
- 不管怎样,Test.py中的"__name__ == '__main__'"都不会成立的!
-
- 因此,下一行代码永远不会运行到!
2. Python中的类
class <类名>:
<语句>
类实例化后,能够使用其属性,实际上,建立一个类以后,能够经过类名访问其属性。若是直接使用类名修改其属性,那么将直接影响到已经实例化的对象
类的私有属性:
__private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs
类的方法:
在类地内部,使用def关键字能够为类定义一个方法,与通常函数定义不一样,类方法必须包含参数self,且为第一个参数
私有的类方法:
__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用slef.__private_methods
类的专有方法:
__init__ 构造函数,在生成对象时调用
__del__ 析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值
__len__得到长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方
继承类定义: