上一节直达:
Python学习笔记——小白入门系列——05函数(1)
这一节,咱们展开说函数:类的迭代与继承
类的迭代与继承
- 【class A(B)】 #子类(父类)
class SecondClass(MyClass):pass#定义SecondClass是MyClass的子类,SecondClass可以调用MyClass的属性和方法x = SecondClass()print(x.i)print(x.f())#输出的结果为12345hello world
- 【class A(B, C)】 #多重继承,优先调⽤左位
class B:i = 123 #B类的属性是i=123class C:i = 12345 #C类的属性是i=12345class A(B,C): #A类是B类和C类的子类passx = A() #创建A类的实例xprint(x.i) #调用属性,会优先调用B类的属性#结果输出为123
- 【类的修改继承】
#修改父类的属性class 基础机器人(): def __init__(self,参数): self.姓名 = 参数 def 自报姓名(self): print('我是' + self.姓名 + '!') def 卖萌(self): print('小哥哥,求抱抱!')class 高级机器人(基础机器人): def 自报姓名(self): print('我是高级机器人' + self.姓名 + '!') def 卖萌(self): print('小哥哥,每次想到怎么欺负你的时候,就感觉自己全身biubiubiu散发着智慧的光芒!')#此处父类属性已被修改,若重新引用父类原来的属性则会入坑,好的习惯是子类属性继承父类使用的时候重新贴一个标签,各归各。娜娜 = 高级机器人('娜娜')娜娜.自报姓名()娜娜.卖萌()
类的定义(def)和初始化(init)
- 【class】
class MyClass: #定义类 i =12345 #定义类的属性(变量) def f(self): #定义类的方法 return('hello world') #执行这个方法会返回'hello word'这个字符串 x = MyClass() #创建类的实例xprint(x.i) #打印实例x的属性print(x.f()) #打印实例x的f方法#输出的结果为12345hello world
- 【def __init __(self )】 #创建类的初始化⽅法,只要调便⾃动初始化
class A: def __init__(self): #只要创建实例,便会自动执行初始化方法下的语句 print('hello world')x = A()#输出:hello world#只要创建实例就会调用方法,打印hello world#对比以下没有初始化的方法:class A: def f(self): print('hello world')x = A()#不使用初始化方法,创建实例无任何输出
类的使用
- 【直接使用--@classmethod】
class 念诗类(): 一首诗 = ['《卜算子》','我住长江头,','君住长江尾。','日日思君不见君,','共饮长江水。'] 参数 = input('这首诗你想让我念给给听呢?') @classmethod def 念诗函数(cls,称呼): print('念给'+ cls.参数+str(称呼)+'的诗:') for i in cls.一首诗: print(i)念诗类.念诗函数('爸爸')
# 直接使用类class 成绩单(): @classmethod def 录入成绩单(cls): cls.学生姓名 = input('请输入学生姓名:') cls.语文_成绩 = int(input('请输入语文成绩:')) cls.数学_成绩 = int(input('请输入数学成绩:')) @classmethod def 打印成绩单(cls): print(cls.学生姓名 + '的成绩单如下:') print('语文成绩:'+ str(cls.语文_成绩)) print('数学成绩:'+ str(cls.数学_成绩))成绩单.录入成绩单()成绩单.打印成绩单()
- 【使用其实例】
# 实例化之后,实例继承类的属性,并同步类的更新。class 成绩单(): # ①不用再写@classmethod def 录入成绩单(self): # ②cls变成self self.学生姓名 = input('请输入学生姓名:') # ③cls.变成self. self.语文_成绩 = int(input('请输入语文成绩:')) self.数学_成绩 = int(input('请输入数学成绩:')) def 打印成绩单(self): print(self.学生姓名 + '的成绩单如下:') print('语文成绩:'+ str(self.语文_成绩)) print('数学成绩:'+ str(self.数学_成绩))成绩单1 = 成绩单() # ④创建实例对象:成绩单1成绩单1.录入成绩单() # ⑤实例化后使用成绩单1.打印成绩单()
类函数的重写
class 类(): def 原始函数(self): print('我是原始函数!') def 新函数(self): print('我是重写后的新函数!')a = 类() # 实例化a.原始函数()# 用新函数代替原始函数,也就是【重写类方法】类.原始函数 = 新函数# 现在原始函数已经被替换了a.原始函数()
下一节直达:
Python学习笔记——小白入门系列——05函数(3)「类的实例化」