类对象
class Student:
pass # 空语句
type 模具类
实例:
class Student: # 类名首字母大写,多个单词驼峰原则
def __init__(self, name, score): # self必须位于第一个参数
""" 构造函数 """
self.name = name
self.score = score
def get_score(self): # self必须位于第一个参数
""" 获取分数信息 """
print("{0}的分数为{1}".format(self.name, self.score))
return self.score
def test():
Stu = Student
s1 = Student("YJP", 99)
s2 = Stu("XX", 100)
s1.get_score()
s2.get_score()
if __name__ == '__main__':
test()
结果:
YJP的分数为99
XX的分数为100
类属性是属于“类对象”的属性,也称为“类变量”。由于类属性也属于类对象,可以被所有的实例对象共享。
类属性的定义方法:
class 类名:
类变量名 = 初始值
在类中或者类的外面,我们可以通过:类名.类变量名 来读写。
实例:
class People:
company = "Embedded" # 类属性
count = 0 # 类属性
def __init__(self, name, age, score):
self.name = name # 实例属性
self.age = age
self.score = score
People.count += 1
def get_info(self): # 实例方法
print("------------------------------")
print("- name : {0}".format(self.name))
print("- age : {0}".format(self.age))
print("- score : {0}".format(self.score))
print("- company : {0}".format(self.company))
print("- count : {0}".format(self.count))
print("------------------------------")
def test2():
p1 = People("YJP", 21, 99)
p1.get_info()
if __name__ == '__main__':
test2()
结果:
------------------------------
- name : YJP
- age : 21
- score : 99
- company : Embedded
- count : 1
------------------------------
类方法是从属于“类对象”的方法。
类方法通过装饰器@classmethod来定义,格式如下:
@classmethod
def 类方法名(cls, [形参列表]):
函数体
要点:
实例:
class Human:
base = "碳基生命体" # 类属性
@classmethod
def get_base(cls):
print(cls.base)
if __name__ == '__main__':
Human.get_base()
结果:
碳基生命体
Python中允许定义与类对象无关的方法,称为静态方法。
静态方法和模块中定义普通函没用区别,只不过静态方法放到了类的名字空间里面,需要通过类调用。
静态方法通过装饰器@staticmethon来定义,格式如下:
@staticmethod
def 类方法名([形参列表]):
函数体
要点:
实例:
class Human:
base = "碳基生命体" # 类属性
@classmethod # 类方法
def get_base(cls):
""" 打印信息 """
print(cls.base)
@staticmethod
def add(number1, number2): # 静态方法
""" 加法计算 """
sum = number1 + number2
print("计算:S{0} + {1} = {2}".format(number1, number2, sum))
return sum
if __name__ == '__main__':
Human.get_base()
Human.add(45, 55)
结果:
碳基生命体
计算:S45 + 55 = 100