面向对象编程
参考链接:廖雪峰的官方网站
类和实例
代码示例:
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def print_score(self):
print('%s: %s' % (self.name, self.score))
- 通过
class
关键字来定义类,类名通常要大写,后面的括号里面表示该类继承于哪个类,所有类最终继承于object
类,这类似于Java - python允许对实例变量绑定任何数据,因此同一个类的不同实例拥有的变量名称可能会不同
- 特殊的
__init__
方法可以把必须绑定给类实例的属性填写进去,它的第一个参数永远是self
,表示创建的实例本身,在创建实例的时候,必须传入与__init__
方法匹配的参数,self
除外 - 实际上,Python中类中定义的函数的第一个参数都必须是
self
,调用时不用传递该参数
对Student类使用实例代码:
chen = Student('chen', 13)
bart = Student('bart', 81)
chen.print_score()
bart.print_score()
chen.score = 100
bart.name = 'kobe'
chen.print_score()
bart.print_score()
输出结果:
chen: 13
bart: 81
chen: 100
kobe: 81
访问限制
- 在内部属性的前面加上两个下划线
__
把它变成private,外部无法直接访问这个属性:
class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score
def print_score(self):
print('%s: %s' % (self.__name, self.__score))
>>> bart = Student('Bart Simpson', 59)
>>> bart.__name
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Student' object has no attribute '__name&#