【类】是一个函数包。
类中可以放置函数和变量,然后类中的函数可以很方便的使用类中的变量。
语法:
创建一个名为“ClassName”的类
如定义一个名为’电影’的类,可以写成class Movie():
既然【类】是一个函数包,所以一个类中可以放置一堆函数
类中的函数叫方法,调用格式:类.函数()
类中的变量叫属性,调用格式:类.变量
class Robot():
bust = 33
waist = 44
hip = 55
IQ = 200
# 以上为类的属性
def say_hello():
print('主人好!')
def act_cute():
print('主人,求抱抱!')
def be_angry():
print('主人,我生气了!')
def run():
print('我快乐地奔跑着。')
# 以上为类方法
print('把robot的属性打印出来:') # 把robot的属性打印出来:
print(Robot.bust) # 33
print(Robot.waist) # 44
print(Robot.hip) # 55
print(Robot.IQ) # 200
Robot.say_hello() # 主人好!
Robot.act_cute() # 主人,求抱抱!
Robot.be_angry() # 主人,我生气了!
Robot.run() # 我快乐地奔跑着
类方法和函数类似,也可以传递外部参数
class Add_100():
def add_100(num):
sum = num + 100
print('计算结果如下:')
print(sum)
num = 1
Add_100.add_100(1)
'''计算结果如下:
101'''
和函数不同的是,类方法还可以利用类属性作为参数,即从类的内部给自己传递参数
class Read_poem():
poem = ['《咏柳》', '碧玉妆成一树高,', '万条垂下绿丝绦,', '不知细叶谁裁出,', '二月春风似剪刀。']
@classmethod
def read_poem(cls):
for i in cls.poem:
print(i)
Read_poem.read_poem()
'''《咏柳》
碧玉妆成一树高,
万条垂下绿丝绦,
不知细叶谁裁出,
二月春风似剪刀。
'''
类方法可以同时使用内部参数和外部参数,当类方法要使用多个外部参数时,要多预设几个参数位置
class Add_100():
var = 100
@classmethod
def add_100(cls,par1,par2,par3):
sum = cls.var + par1 + par2 + par3
print('add_100函数计算结果如下:')
print(sum)
par1 = int(input('请输入一个整数:'))
par2 = int(input('请输入一个整数:'))
par3 = int(input('请输入一个整数:'))
Add_100.add_100(par1,par2,par3)
'''请输入一个整数:5
请输入一个整数:6
请输入一个整数:7
add_100函数计算结果如下:
118'''
类是对象的模板,可以复制出多个对象,这个复制过程叫【实例化】
使用 实例名 = 类()的方式就得到了【实例对象】,简称为【实例】
直接使用类的格式
'''class 类A():
变量1 = 100
变量2 = 200
@classmethod
def 函数1(cls):
print(cls.变量1)
print(cls.变量2)
类A.函数1()'''
实例化后再使用 的格式
"""class 类A():
变量1 = 'abc'
def 函数1(self):
print('已经完成了实例化!')
print('类属性的值是:' + self.变量1)
a = 类A() # 实例化
a.函数1() # 实例化后再使用
b = 类A() # 可以实例化多个不同的实例
b.函数1() # 实例化后再使用"""
当一个类实例化为多个实例后,实例将原封不动的获得类属性,也就是实例属性和类属性完全相等
修改类属性,会导致所有实例属性变化
修改实例属性,不会影响到其它实例,也不会影响到类,每个实例都是独立的个体。
class A:
var = 100 #类属性
example1 = A() # 实例化
example2 = A() # 实例化
example1.var = 10 # 修改实例属性
A.var = 1
print(example1.var)
print(example2.var)
''' >>> 10 1'''