在程序的发展过程中, 类这个概念的出现绝对是一个里程碑事件, 它让软件工程有了一个质的飞跃!
那什么是类?
类是一组变量和函数的封装体 (可以想像它是一个快递包, 里面封好了一组变量和函数).
举个例子, 清空a.py的内容, 写入以下代码, 并以调试模式运行
# 使用关键字class创建一个类
class 汽车:
汽油 = 0
sumKM = 0
def refuel_100(self):
self.汽油 = self.汽油 - 100
def run(self, km):
self.sumKM = self.sumKM + km
return self.sumKM
粤A = 汽车() # "类名()"语法是创建一个类实例, 它不是调用函数的意思
粤A.汽油 = 199
粤A.sumKM = 100
粤A.refuel_100()
粤A公里数 = 粤A.run(10)
沪A = 汽车()
沪A.汽油 = 299
沪A.sumKM = 200
沪A.refuel_100()
沪A公里数 = 沪A.run(10)
print(粤A.汽油)
print(粤A公里数)
print(沪A.汽油)
print(沪A公里数)
知识点> 类的静态方法 (静态方法类似模块函数, 区别的是静态方法以类名开头)
# 使用 @staticmethod 语法放置函数前头
class MyRandom:
@staticmethod
def randint(start, end):
return start + (end - start) / 2
import random;
a = random.randint(1, 100)
b = MyRandom.randint(1, 100) # 记住, 它不需要创建实例后才能调用, 直接上类名
print(a, b)
衍生知识> 事实上Python的字符串是str类的一个实例, 所以字符串才能拥有内置函数!
练习题1: 创建一个类名为Human, 它两个属性(money, blood)和两个方法(earn, damage) , 调用earn时money加100, 调用damage时blood减100.
练习题2: 创建两个Human实例a和b, a的money和blood分别是(1000,1500), b的为(2000,2500)
练习题3: a和b两个实例分别调用一遍earn和damage, 并在最后输出两个实例的money和blood
练习题4: 为Human增加一个静态方法名为hello, 其功能是打印”world”, 并调用它