蓝绝

博客园 首页 新随笔 联系 订阅 管理
  232 随笔 :: 1 文章 :: 0 评论 :: 26006 阅读

#

复制代码
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(id(stu1))
print(id(stu2))

'''
总结:

1.在__init__初始化方法中定义的属性是Student类的所有对象共享的属性,如self.name,self.age
2.在对象创建后创建的属性,只适用于该对象使用,若其他对象使用则会报错,因为没有该属性
3.一个Student类可以创建N多个Student类的实例对象,每个实例对象的属性可以相同也可以不同,
'''
print('------------为stu2动态绑定性别属性---------------------------')
stu1.gender=''             #只为stu1实例对象动态添加属性,该属性只适用于stu1实例对象
#print(stu1.name,stu1.age,stu1.gender)   #AttributeError报错,对象里没有该属性
print(stu1.name,stu1.age,stu1.gender)   #张三 20 女
print(stu2.name,stu2.age)                #李四 30

print('--------------------------')
stu1.eat()   #张三在吃饭,对象可以直接引用类里定义的方法
stu2.eat()   #李四在吃饭

'''除了可以动态添加属性,还可以动态添加方法'''
def show():
    print('定义在类之外的,称函数')
stu1.show=show  #将定义的函数绑定在stu1这个对象上
stu1.show()  #绑定后stu1就可以调用show()方法了

#stu2.show()  #因为stu2并没有绑定show方法
复制代码

 

posted on   蓝绝  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示