小言_互联网的博客

Python由放弃到入门,基础篇七(类)下

164人阅读  评论(0)

类的实例化

有感于现在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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场