• python类的继承-1


     1 #!/usr/bin/python3
     2 
     3 #类定义
     4 class people:
     5     #定义基本属性
     6     name = ''
     7     age = 0
     8     #定义私有属性,私有属性在类外部无法直接进行访问
     9     __weight = 0
    10     #定义构造方法
    11     def __init__(self,n,a,w):
    12         self.name = n
    13         self.age = a
    14         self.__weight = w
    15     def speak(self):
    16         print("%s 说: 我 %d 岁。" %(self.name,self.age))
    17 
    18 #单继承示例
    19 class student(people):
    20     grade = ''
    21     def __init__(self,n,a,w,g):
    22         #调用父类的构函,否则继承自people的student将没有n、a、w属性!!!!!!!!!!!!!!!
    23         people.__init__(self,n,a,w)#
    24         self.grade = g
    25     #覆写父类的方法
    26     def speak(self):
    27         print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
    28 
    29 
    30 
    31 s = student('ken',10,60,3)
    32 s.speak()

    结果是:

    若是上述代码没有第23行,代码如下:

     1 #!/usr/bin/python3
     2 
     3 #类定义
     4 class people:
     5     #定义基本属性
     6     name = ''
     7     age = 0
     8     #定义私有属性,私有属性在类外部无法直接进行访问
     9     __weight = 0
    10     #定义构造方法
    11     def __init__(self,n,a,w):
    12         self.name = n
    13         self.age = a
    14         self.__weight = w
    15     def speak(self):
    16         print("%s 说: 我 %d 岁。" %(self.name,self.age)) #其实也可以用people.age访问类属性,但是此时实例化后调用此句时类属性age的值为0。
    17 
    18 #单继承示例
    19 class student(people):
    20     grade = ''
    21     def __init__(self,n,a,w,g):
    22         #调用父类的构函
    23         #people.__init__(self,n,a,w)
    24         self.grade = g
    25     #覆写父类的方法
    26     def speak(self):
    27         print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
    28 
    29 
    30 
    31 s = student('ken',10,60,3)
    32 s.speak()

    结果为:

    name为空,age为0,这不是直接继承的父类people的属性   name = ''    age = 0    么,也就是第31行 

    s = student('ken',10,60,3)  name和age只是传递到了子类student中,子类由于继承了父类的属性和方法,但父类的初始化(构造函数)函数却没有被自动执行。









    参考:
    http://blog.csdn.net/goodluckac/article/details/53100957
    http://www.runoob.com/python3/python3-class.html

  • 相关阅读:
    【基础】jquery全选、反选、全不选代码
    【基础】jquery全选、反选、全不选代码
    收集一些程序员励志经典名言
    收集一些程序员励志经典名言
    收集一些程序员励志经典名言
    防止表单重复提交的解决方案整理
    Git使用教程
    2019牛客暑期多校训练营(第二场)J Subarray
    Hibernate-配置
    与项目欧拉速度比较:C vs Python与Erlang vs Haskell
  • 原文地址:https://www.cnblogs.com/zhubinglong/p/6935295.html
Copyright © 2020-2023  润新知