#类的创建:
class Student:###Student为类的名称(类名),可以由一个或多个单词组成,每个单词首字母大写
native_place='河南'#写在类里的变量称为类属性
def __init__(self,name,age):
self.name=name###self.name称为实例属性,在这里进行了赋值操作,将局部变量name的值赋给实例属性
self.age=age
def eat(self):###在类里面定义的函数被称为实例方法,必须在括号内填self
print(self.name+"在吃饭")
@staticmethod###静态方法
def method():###不能在括号内填self
print("我使用了staticmethod进行修饰,所以我是静态方法")
@classmethod###类方法
def cm(cls):###在括号内填cls
print("我是类方法,因为我使用classmethod进行修饰")
#对象的创建:
stu1=Student('张三',20)
stu2=Student('李四',30)
stu1.eat()###调用以stu1为实例对象的实例方法
Student.eat(stu1)###调用以stu1为实例对象的实例方法
#类属性的使用:
print(stu1.native_place)
Student.native_place='天津'###更改类属性
print(stu1.native_place)
#动态绑定属性:
stu2.gender='女'
print(stu2.gender)###给stu2单独绑定了一个实例属性,只有stu2具有这个实例属性,stu1没有
#动态绑定方法
def show():
print("定义在类之外,属于函数")
stu1.show=show###将show函数绑定到stu1上,变成了方法
stu1.show()
编译结果:
- 张三在吃饭
- 张三在吃饭
- 河南
- 天津
- 女
- 定义在类之外,属于函数