- 类的定义
Python中定义使用class关键字,class后面紧接着类名,类名一般使用大写字母开头,紧接着就是object,表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用object类,这是所有类都会继承的类。
类包含属性(相当于函数中的语句)和方法(相当于函数)。 - 类的实例化
实例化类时调用了__init__()
方法,此方法一般称为构造方法。在定义类时,若不显示的定义一个__init__()
方法,则程序默认调用一个无参的__init__()
方法。
一个类中可定义多个构造方法,但实例化类时只实例化最后的构造方法,并且需要根据最后一个构造方法的形式进行实例化。建议一个类中只定义一个构造函数。 - 类的访问权限
要让内部属性不让外部访问,可以在属性名称前加两个下划线__。在Python中如果实例的变量名如果以__
开头,就会变成私有变量(private),只有内部可以访问,外部不能访问。
实例:
class Student(object):
def __init__(self,name,score):
self.__name = name #私有属性
self.__score = score #私有属性
def __info_print(self): #私有方法,private
print("名字:%s, 分数:%s"%(self.__name,self.__score))
def info(self):
self.__info_print()
def set_score(self,score):
self.__score = score
def get_score(self):
return self.__score
stu = Student("carl",90)
print("first")
stu.info()
stu.set_score(80)
print("modify")
stu.info()
print("get score is :",stu.get_score())
运行结果:
first
名字:carl, 分数:90
modify
名字:carl, 分数:80
('get score is :', 80)
4、 类的继承
子类可以继承基类的共有方法,但不能继承私有属性和方法。
当子类和父类拥有相同的方法时,会用子类的方法覆盖掉父类的方法。
5、多态
多态常用于在父类中定义一个方法,子类中可以直接调用父类方法或使用自身方法。多态的真正威力在于,调用方只管调用,不管细节。这就是著名的“开闭”原则:对于扩展开放,可以添加新的子类;对于修改封闭,不需要修改父类型的基本方法。
6、封装
封装是全局作用域中其他区域隐藏对于信息的原则。