ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

12.6 动态绑定属性和方法

2022-09-11 22:04:56  阅读:169  来源: 互联网

标签:stu2 stu1 name show self 绑定 12.6 print 属性


#

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方法

 

标签:stu2,stu1,name,show,self,绑定,12.6,print,属性
来源: https://www.cnblogs.com/988MQ/p/16684914.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有