类的实例化
有感于现在python教程多如牛毛,且大多高不可攀,多次拜读而不得其门道,遂由入门到放弃。偶有机缘,得一不错教程,得以入门,现博客分享,想要获取完整教程,加V:ff17328081445。
通过对比可以看到,实例化后再使用的格式,①是空着的,意思是这里不再需要@classmethod的声明,并且在第②处,把cls替换成了self。同时,实例化后再使用的格式,需要先赋值然后再调用(第③处):
实例如下:
#!/usr/bin/python3
# 直接使用类
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.打印成绩单()
>>>>>>>>>>>>>>>>>>>>>>>>
请输入学生姓名:123
请输入语文成绩:123
请输入数学成绩:123
123的成绩单如下:
语文成绩:123
数学成绩:123
请输入学生姓名:123
请输入语文成绩:123
请输入数学成绩:123
123的成绩单如下:
语文成绩:123
数学成绩:123
实例属性和类属性
修改实例属性
#!/usr/bin/python3
class 类():
变量 = 100
实例1 = 类() # 实例化
实例2 = 类() # 实例化
print(类.变量)
print(实例1.变量)
print(实例2.变量)
>>>>>>>>>>>>>>>>>>>>>>>>
100
100
100
-----------------------------------
#!/usr/bin/python3
class 类():
变量 = 100
实例1 = 类() # 实例化
实例2 = 类() # 实例化
print(实例1.变量)
print(实例2.变量)
类.变量 = 'abc' # 修改类属性
print(实例1.变量) # 实例属性同步变化
print(实例2.变量) # 实例属性同步变化
>>>>>>>>>>>>>>>>>>>>>>>>
100
100
abc
abc
-----------------------------------
#!/usr/bin/python3
class 类:
变量 = 100 #类属性
实例1 = 类() # 实例化
实例2 = 类() # 实例化
实例1.变量 = 10
类.变量 = 1
print(实例1.变量)
print(实例2.变量)
>>>>>>>>>>>>>>>>>>>>>>>>
10
1
修改实例方法和类方法
#!/usr/bin/python3
# 请直接运行并体验代码
class 幸运():
def 好运翻倍(self):
print('好的,我把它存了起来,然后翻了888倍还给你:' + str(self.幸运数*888))
def 新好运翻倍(self):
print('我是重写后的新函数!')
print('好的,我把它存了起来,然后翻了666倍还给你:' + str(self.幸运数*666))
幸运.幸运数 = int(input('你的幸运数是多少?请输入一个整数。'))
幸运.好运翻倍 = 新好运翻倍
实例 = 幸运() # 实例化
实例.好运翻倍()
>>>>>>>>>>>>>>>>>>>>>>>>
你的幸运数是多少?请输入一个整数。888
我是重写后的新函数!
好的,我把它存了起来,然后翻了666倍还给你:591408
初始化函数
#!/usr/bin/python3
class 类():
def __init__(self):
print('实例化成功!')
实例 = 类()
>>>>>>>>>>>>>>>>>>>>>>>>
实例化成功!
-----------------------------------
#!/usr/bin/python3
class 成绩单():
def 录入成绩单(self):
self.学生姓名 = input('请输入学生姓名:')
self.语文_成绩 = int(input('请输入语文成绩:'))
self.数学_成绩 = int(input('请输入数学成绩:'))
def 打印成绩单(self):
print(self.学生姓名 + '的成绩单如下:')
print('语文成绩:'+ str(self.语文_成绩))
print('数学成绩:'+ str(self.数学_成绩))
成绩单1 = 成绩单() # 实例化
成绩单2 = 成绩单() # 实例化
成绩单3 = 成绩单() # 实例化
成绩单1.录入成绩单()
成绩单2.录入成绩单()
成绩单3.录入成绩单()
成绩单1.打印成绩单()
成绩单2.打印成绩单()
成绩单3.打印成绩单()
>>>>>>>>>>>>>>>>>>>>>>>>
请输入学生姓名:123
请输入语文成绩:123
请输入数学成绩:123
请输入学生姓名:123
请输入语文成绩:123
请输入数学成绩:123
请输入学生姓名:123
请输入语文成绩:123
请输入数学成绩:123
123的成绩单如下:
语文成绩:123
数学成绩:123
123的成绩单如下:
语文成绩:123
数学成绩:123
123的成绩单如下:
语文成绩:123
数学成绩:123
#初始化函数
#!/usr/bin/python3
class 成绩单():
def __init__(self,学生姓名,语文_成绩,数学_成绩):
self.学生姓名 = 学生姓名
self.语文_成绩 = 语文_成绩
self.数学_成绩 = 数学_成绩
def 打印成绩单(self):
print(self.学生姓名 + '的成绩单如下:')
print('语文成绩:'+ str(self.语文_成绩))
print('数学成绩:'+ str(self.数学_成绩))
成绩单1 = 成绩单('张三',99,88)
成绩单2 = 成绩单('李四',64,73)
成绩单3 = 成绩单('王五',33,22)
成绩单1.打印成绩单()
成绩单2.打印成绩单()
成绩单3.打印成绩单()
>>>>>>>>>>>>>>>>>>>>>>>>
张三的成绩单如下:
语文成绩:99
数学成绩:88
李四的成绩单如下:
语文成绩:64
数学成绩:73
王五的成绩单如下:
语文成绩:33
数学成绩:22
类的继承
#!/usr/bin/python3
class 基础机器人():
def __init__(self,参数):
self.姓名 = 参数
def 自报姓名(self):
print('我是' + self.姓名 + '!')
def 卖萌(self):
print('主人,求抱抱!')
#继承父类
class 高级机器人(基础机器人):
def 自报姓名(self):
print('我是高级机器人' + self.姓名 + '!')
def 卖萌(self):
print('主人,每次想到怎么欺负你的时候,就感觉自己全身biubiubiu散发着智慧的光芒!')
安迪 = 高级机器人('安迪')
安迪.自报姓名()
安迪.卖萌()
>>>>>>>>>>>>>>>>>>>>>>>>
我是高级机器人安迪!
主人,每次想到怎么欺负你的时候,就感觉自己全身biubiubiu散发着智慧的光芒!
转载:https://blog.csdn.net/ff876409866/article/details/101917393
查看评论