博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python类的继承和封装
阅读量:3958 次
发布时间:2019-05-24

本文共 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()

封装:类中既要提供与外部联系的接口


类中的成员:变量和方法

变量:类变量与实例变量

  • 类变量 :是指在所有方法外部定义的变量
  • 实例变量:一般是在构造方法里面定义的,定义和使用以self作为前缀

方法

  • 公有方法
  • 私有方法:方法以俩条下划线作为前缀
  • 类方法 :不对特定实例进行操作,在该方法中不能访问对象的实例变量,通过标识符@classmethod定义,第一个参数必须是为类对象本身,通常为cls
  • 静态方法:@staticmethod定义

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/

你可能感兴趣的文章