面向对象
面向对象的设计思想是抽象出类(Class),根据Class创建实例(Instance)
图中程序简化如下:
name = 'whole global name'
class Person():
name = 'class global name'
def __init__(self, newPersionName):
self.name = newPersionName
# print(name)
def sayYourName(self):
print(self.name)
self.name = 'han'
# print(name)
# print(Person.name)
# Person.name = 'li'
self.test()
def test(self):
print(self.name)
def selfAndInitDemo():
persionInstance = Person('crifan')
persionInstance.sayYourName()
# print(name)
# persionInstance.test()
if __name__ == '__main__':
selfAndInitDemo()
访问限制
- 单下划线"_"
作为临时性的名称使用,但是并不会在后面再次用到该名称。
- 名称前的单下划线(如:_shahriar)
这是一种惯例,指定该名称虽然可以访问,但不要随便访问。
- 名称前的双下划线(如:__shahriar)
类中的私有变量名,为了避免与子类定义的名称冲突。只有类对象自己能访问,连子类对象也不能访问到这个数据。
- 名称前后的双下划线(如:__init__)
这是一种惯例,是系统定义的名字,确保不会与用户自定义的名称冲突。
- if __name__ == "__main__"
模块是对象, 并且所有的模块都有一个内置属性 __name__。如果 import 模块, 那么 __name__的值通常为模块的文件名, 不带路径或者文件扩展名。
但是您也可以像一个标准的程序一样直接运行模块, 在这种情况下 __name__的值将是一个特别的缺省值:__main__。
- 核心风格:避免用下划线作为变量名的开头。