Python基础–15
编程思想
类与对象
python中一切皆对象
类的创建
类的名称由一个或多个单词组成,每个单词的首字母大写,其余小写
类是对象,开辟内存空间
对象的创建
class Student:# Student称为类的名称
native_pace='吉林'#直接写在类里面的变量,称为类属性
def __init__(self,name,age):#name,age是实例属性
self.name=name
self.age=age
#实例方法
def eat(self):
print('学生在吃饭')
#静态方法,使用@staticmethod
@staticmethod
def method():
print('静态方法中不允许写self')
#类方法,@classmethod
@classmethod
def cm(cls):
print('类方法中传cls')
#在类之外定义的称为函数,在类之内定义的称为方法
stu1=Student('张三',20)
stu1.eat()
stu1.cm()
stu1.method()
print(stu1.name,stu1.age)
# 学生在吃饭
# 类方法中传cls
# 静态方法中不允许写self
# 张三 20
Student.eat(stu1)
# 学生在吃饭
类属性、类方法、静态方法
print(Student.native_pace)#吉林
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_pace)
print(stu2.native_pace)
# 吉林
# 吉林
Student.native_pace='天津'
print(stu1.native_pace)
print(stu2.native_pace)
# 天津
# 天津
Student.cm()
Student.method()
# 类方法中传cls
# 静态方法中不允许写self
动态绑定属性和方法
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def eat(self):
print(self.name+'在吃饭')
stu1=Student('张三',30)
stu2=Student('李四',40)
stu2.gender='男'
print(stu1.name,stu1.age)
print(stu2.name,stu2.age,stu2.gender)
# 张三 30
# 李四 40 男
def show():
print('定义在类之外,函数')
stu1.show=show
stu1.show()