面向对象编程,,如何来设计类?
首先要考虑对象需要使用到哪些属性,对象需要实现什么样的功能。
class Student(object)
''' 保存学员信息的类
args: -- name:保存学员姓名
-- age:保存学员年龄
'''
# 类属性:类可以使用和修改,对象能够使用,但它是对象不能修改的属性
school_name = '爱学'
# 初始化函数,用来初始化对象属性值的,当创建对象的时候该函数会自动被调用,self就是创建的那个对象
def __init__(self,name,age):
self.name = name
self.age = age
# 凡是函数带有self参数且函数没有被任何的装饰器主装饰,该函数默认为对象函数
# 对象函数:只能由对象调用,类若想要调用,需要传入一个对象参数
def show_name(self):
print(self.name,self.age)
# @staticmethod 装饰器 作用:不改变原有函数代码的情况下,可以为函数添加一些额外功能
# 静态函数,可以使用类和对象直接调用执行
@staticmethod
def print_line(count):
print('*'*count)
@classmethod
def print_double_line(cls):
# cls 指的就是当前的类
print(cls)
print('='*50)
people = Student(‘张三’,22)
print(people)
__main__指在本文件中,Student 说明类,object at xxx 说明对象在哪个地址
people.show_name() # 类调用对象函数,必须传入一个对象参数
Student.print_line(100)
people.print_line(50)
Student.print_double_line()
people.print_double_line()
print(Student.school_name)
print(people.school_name)
# people.XXX = XXX :对象添加属性,或者改变属性,但无法改变其类属性
people.school_name = '不爱学'
print(Student.school_name)
print(people.school_name)
# 创建一个新对象,验证上面只是对象属性改变,其类属性没有,在类改变类属性时,对象随之改变
man = Student('李四',22)
print(man.school_name)
Student.school_name = '太爱学’
print(man.school_name)