Python学习子类父类知识

一。类的定义(相当于多个函数集合的定义)

In [ ]:

例8.1定义一个矩形类,包括两个数据成员(属性参数):宽带和高度;该类提供两个方法(功能函数):求面积周长

In [8]:

class Rectangle: #定义一个类最后是冒号标志
    def __init__(self,width,height):#定义初始化方法,三个参数最少有一个self参数(形参)
        self.width = width         #定义参数变量属性,给属性赋值
        self.height = height
    def getArea(self):
        S = self.width*self.height
        return S
    def getPermiter(self):
        C= 2*(self.width+self.height)
        return C

二。创建类对象(相当于函数的调用)

In [9]:

rect = Rectangle(10,20) #创建类对象rect

In [10]:

print(rect.width)
print(rect.getArea())
10
200

In [11]:

a = input ('请输入矩形的宽a=')
b = input ('请输入矩形的高b=')
rect = Rectangle(a,b)
print('此矩形的宽a为:',rect.width)
print('此矩形的高b为:',rect.height)
print('此矩形的面积s为:',rect.getArea())
print('此矩形的周长c为:',rect.getPermiter())
请输入矩形的宽a=1
请输入矩形的高b=2
此矩形的宽a为: 1
此矩形的高b为: 2
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-11-21fcb6cdcd86> in <module>
      4 print('此矩形的宽a为:',rect.width)
      5 print('此矩形的高b为:',rect.height)
----> 6 print('此矩形的面积s为:',rect.getArea())
      7 print('此矩形的周长c为:',rect.getPermiter())

<ipython-input-8-2f64bf52c013> in getArea(self)
      4         self.height = height
      5     def getArea(self):
----> 6         S = self.width*self.height
      7         return S
      8     def getPermiter(self):

TypeError: can't multiply sequence by non-int of type 'str'

三。类的属性(变量)

实例属性:在定义初始化方法时内部通过“self。属性名”定义和访问的变量(在外部通过对象名。变量名进行访问) 类属性:在所有方法之外定义的属性(变量)

四。类的方法

1.定义:与类相关的函数,包括初始化函数和功能函数(方法) 2.类型:实例方法,类方法,静态方法 实例方法:最少包含一个对象参数,在内部通过‘self。方法’调用,在外部通过对象名。方法调用

类的继承,

1.继承:子类继承父类的方法 2.重写:子类可以重新编写子类的方法(方法名称相同) 3.多态:子类中方法名称相同但是功能不同 4.实例如下

In [16]:

class Person():
    def __init__(self,name,sex,age):
        self.name =name
        self.sex =sex
        self.age =age
    def studying(self):
        print(self.name,'正在j203学习中')
    def show(self):
        print('姓名:{}\n性别:{}\n年龄:{}\n'.format(self.name,self.sex,self.age))
class Student(Person):
    def __init__(self,name,sex,age,major):
        super().__init__(name,sex,age)
        self.major =major
    def show(self):
        Person.show(self)
        #super().show()
        print('专业:{}\n'.format(self.major))
        #print('专业:{}\n性别:{}\n年龄:{}\n'format(super(),show(self),self.major))

In [17]:

stu =Student('zyj','na',20,'智联一')
stu.studying()
stu.show()
zyj 正在j203学习中
姓名:zyj
性别:na
年龄:20

专业:智联一

六。综合案例

1.定义一个父类Student和两个子类LevelSt和PassSt,在父类中定义两个实例变量,使子类继承父类的所有属性和方法,并各自定义根据成绩计算等级和判断是否通过的方法; 2.显示由LevelSt和PassSt类对象构成的学生成绩列表,以及所有学生的成绩及姓名,并按字典排列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值