定义一个类
class Person:
'''这是文档字符串'''
phone = None #这是类变量
def __init__(self, name, age = 20):
self.name = name #成员变量
self.age = age
def show(self):
print self.name
print self.age
p = Person("Mat")
print p.__doc__
p.phone = 10
p.show()
输出:
Mat
20
- py允许在类或函数头使用文档字符串来描述其作用, 使用
函数名.__doc__
,类名.__doc__
或者类实例名.__doc_
来获取其文档字符串 - 每个函数必须带一个参数, 是指向类实例的引用, 默认应该命名为
self
- __init__函数为构造函数, python自带垃圾回收机制
- 类中分为
类变量
和成员变量
, 两者作用域不同, 可以理解为类变量属于类, 成员变量属于类实例.
类变量可以通过类或者实例去调用,
成员变量只能通过实例调用
如果成员变量和类变量同名, 使用实例调用时默认先看实例变量
类变量属于类, 每个对象分别在实例化时将类变量复制一份, 各个实例之间互不影响, C++的类静态变量由所有对象共同持有 - python没有访问控制, 没有权限控制, 所有变量都可以从外部调用, 可以在类成员加双下划线
__
实现伪私有化
写一个类是否继承object
的区别