本文共 1469 字,大约阅读时间需要 4 分钟。
python与Java一样都是面向对象的编程语言,因此具有面向对象的三大性质,封装,继承和多态,首先我们看一下python类的创建,
类的创建
定义一个简单的Student类
代码如下class Student: education ="daz" #定义一个类变量 def __init__(self,name): #构造方法 self.name=names1=Student("huangyueyue") #实例化一个对象print(s1.name) #使用对象.变量调用print(s1.education)
继承:从一个通用类(父类)扩展更多特定的类(子类)
实例:在Student类中继承一个highStudent类
继承类需要在创建类的时候传入父类,并且在子类的构造函数中使用super
关键字对父类的构造函数再次调用。 代码如下: class Student: education ="daz" #定义一个类变量 def __init__(self,name): #构造方法 self.name=names1=Student("张三") #实例化一个对象print(s1.name) #使用对象.变量调用print(s1.education) class highStudent(Student): def __init__(self,name): super().__init__(name) self.age=18 def getage(self): print(self.name) print(self.age)hs=highStudent("李四")hs.getage()
封装:类中既要提供与外部联系的接口
类中的成员:变量和方法
变量:类变量与实例变量方法
python类的成员没有访问控制权限
python中,以下划线开头的方法名和变量名存特殊含义,尤其是在内定义当中名 | 描述 |
---|---|
_xxx | 受保护的成员,不能使用 from ? import ? 导入 |
__xxx __ | 系统定义的特殊成员 |
__xxx | 私有成员,只有类内自己访问 |
使用封装:代码如下
class Student: education ="daz" def __init__(self,name): self.__name=name #私有成员变量,前缀为俩条下划线 self.__sno="" def setSno(self,sno): self.__sno=sno def getname(self): print(self.__name,self.__sno)s1=Student("黄月月鸟")s1.setSno("1825123645")s1.getname()#在下一行的输出当中,使用对象.私有对象名,是不能访问到的。所以会报错print(s1.__name,s1.__sno)
转载地址:http://dxmzi.baihongyu.com/