demo1 类
# 学校:上海海洋大学工程学院
# 时间:2021/10/31 14:56
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
pass
#Python中的一切皆对象,那么Student是对象吗?有内存空间吗?
print(id(Student)) #1769494892704
print(type(Student)) #<class 'type'>
print(Student) #<class '__main__.Student'>
demo2 类的对象和创建
# 学校:上海海洋大学工程学院
# 时间:2021/10/31 14:56
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
native_place='盐城' #直接写在类里的变量,称为类属性
'''初始化方法'''
def __init__(self,name,age):
self.name=name #self.name 称为实例属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age=age
'''实例方法'''
def eat(self): #在类之内定义的称为方法,在类之外定义的称为函数
print('学生在吃饭...')
'''静态方法'''
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
'''类方法'''
@classmethod
def cm(cls):
print('我是类方法,我使用了classmethod进行修饰')
'''--------------------------------------创建Student类的对象----------------------------------------'''
stu1=Student('张三',20) #Student就是类对象,stu1就是实例对象
stu1.eat()
print(stu1.name)
print(stu1.age)
Student.eat(stu1) #33行与30行的代码功能相同,都是调用Student中的类的方法
demo3 类属性的使用方式
# 学校:上海海洋大学工程学院
# 时间:2021/10/31 15:24
class Student: #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
native_place='盐城' #直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name=name #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
self.age=age
'''实例方法'''
def eat(self): #在类之内定义的称为方法,再类之外定义的称为函数
print('学生在吃饭')
'''静态方法'''
@staticmethod
def method():
print('我使用了staticmethod进行了修饰,所以我是静态方法')
'''类方法'''
@classmethod
def cm(cls):
print('我是类方法,我使用了classmethod进行修饰')
'''------------------类属性的使用方式--------------------------------------------------'''
stu1=Student('张三',20)
stu2=Student('李四',30)
print(Student.native_place)
print(stu1.native_place)
print(stu2.native_place)
''''-------------------类方法的使用方式---------------------------------------------------'''
Student.cm()
''''-------------------静态方法的使用方式---------------------------------------------------'''
Student.method()
demo4 动态绑定属性和方法
# 学校:上海海洋大学工程学院
# 时间:2021/10/31 16:14
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def eat(self):
print(self.name+'在吃饭')
stu1=Student('张三',20)
stu2=Student('李四',30)
print('---------------为stu2动态绑定性别属性--------------------------')
stu2.gender='女'
print(stu1.name,stu1.age)
print(stu2.name,stu2.age,stu2.gender)
print('-------------------------------------------------------------')
def show():
print('定义在类之外的,称为函数')
stu1.show=show
stu1.show()