面向对象编程

25.面向对象编程(详见面向对象编程.html文件)
    (1)类的定义(相当于多个函数集合的定义)
    (2)创建类对象(相当于函数的调用)
    (3)类的属性(变量)
            a、实例属性:在方法内部通过‘self.属性变量名’定义和访问的变量(在外部通过‘对象名.变量名’名访问)
            b、类属性:再多也方法之外定义的属性(变量)
    (4)类的方法(函数)
            a、定义:与类相关的函数
            b、类型:实例方法、类方法、静态方法
            c、实例方法:至少包含一个对象参数,在内部通过‘self.方法()’调用,在外部通过‘对象名.变量名’名访问
    (5)类的继承、重生与多态
            a、继承:子类继承父类的方法
            b、重写:子类可以重写子类的方法(方法名称相同)
            c、多态:方法名称相同但功能不同
26.字典(dict):
    (1)是一个无需的可变序列,其元素包含两个部分:键(key):值(value),中间使用英文冒号:分隔开,元素中间用逗号,隔开,整个元素放在大括号{}里面,如果键相同的键值对取最后一个元素。
    (2)创建:dictname={key1:value1,key2:value2,...keyn:valuen}
    (3)方法(函数):
                添加(修改)元素:dictname[键]=值
                读取元素:dictname[键]      dictname.items()
    (4)删除元素:
                dictname.pop(键)
                del  dictname(键)命令:删除字典里指定的元素,或者整个字典
                dictname.clear():删除字典里所有的元素,但保留字典本身
27列表推导式:
    (1)表达式for in list(range())
    (2)表达式for in list(range())   if满足的条件

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

例8.1定义一个矩形类,包含两个数据成员(属性参数):宽度和高度;该类提供两种方法(功能函数): 求面积和周长
class Rectangle:  #定义一个类Rectangle
    def __init__(self,width,height):  #定义初始化方法,至少有一个参数self
        #定义初始化方法
        self.width = width   #给实例属性(形参)赋值,或者说定义参数变量属性
        self.height = height
        #定义其他功能函数、
    def getArea(self):   #定义求面积函数,
        S = self.width * self.height   #定义变量S存放面积
        return S
    def getPerimeter(self):   #定义求周长函数(方法)
        C = (self.width + self.height)*2  #定义变量C存放周长值
        return C
        
            
            

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

rect = Rectangle(3,5)

print('矩形的宽:',rect.width)
print('矩形的高:',rect.height)
print('矩形的面积:',rect.getArea())    #方法后面积的添加()
print('矩形的周长:',rect.getPerimeter())
矩形的宽: 3
矩形的高: 5
矩形的面积: 15
矩形的周长: 16

三、类的属性(变量)

1、实例属性:在方法内部通过‘self.变量名’

四、类的方法(函数)

1、定义:与类相关的函数
2、类型:实例方法,类方法,静态方法
3、实例方法:至少包含一个对象参数,在内部通过‘self.方法’调用

五、类的继承与重写

1、继承:子类继承父类的方法
2、重写:子类可以重写子类的方法(方法名称相同)
3、示例如下:
class Person:  #(1)定义一个父类Person
    #定义初始方法
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
        
        
    #定义实例方法:
    def working(self):
        print(self,self.name,'正在工作')
        
    def show(self):
        print('姓名:{}\n年龄:{}\n性别:{}\n'.format(self.name,self.age.self.sex))
        
    #(2)定义一个子类Student:
class Student(Person):  #定义一个子类Student
    def __init__(self,name,age,sex,major):
        super().__init__(name,age,sex)    #用内置函数super()继承父类相关属性
        self.major = major  #添加子类属性
    #定义实例方法:
    def show(self):
        Person.show(self)    #用Person.方法继承父类方法
        print('专业:',self.major)    #添加子类方法(重写)
        
#(3)创建对象(对象实体化)
s = Student(name = '张三',age = '20',sex = '男',major = '智能互联网络')
s.working()
s.show()
<__main__.Student object at 0x03AEA3F0> 张三 正在工作

六、综合案例分析:

1、定义一个父类Student和两个子类LevelSt和PassSt,在父类中定义两个实例变量和5个方法,使子类继承父类的所有属性和方法,并各自定义根据成绩计算等级和判断是否通过的方法;同时,代码存储在student.py文件中。
2、显示由Levelst和PassSt类对象构成的学生成绩列表,以及所有学生名字和成绩,并按字典排序
#student.py
#定义student父类
class Student:
    def __init__(self,name='',grade=0):
        self.name=name
        self.grade=grade
    def
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值