Day11 类和对象中动态绑定属性和方法

Python是一门动态语言,再创建对象后可以动态的绑定属性和方法

class Students:
    def __init__(self,name,subject):
        self.name=name
        self.subject=subject
    def sleep(self):
        print('刚睡醒,困死我了')

stu1=Student('张三','语文')
stu2=Student('李四','数学')
stu3=Student('王五','英语')
print(stu1.name,stu1.subject)

一个类可以创建n多个关于这个类的实例对象,并且每个实例对象的属性值可以相同/不同 

(1)动态绑定属性

接下来如果要在stu2中增加一个性别属性,则就可以使用动态绑定属性方法,方法很简单,直接实例对象名称.变量名=某个值

print('--------在stu2中动态绑定属性:性别为女----------')
stu2.gender='女'     #动态绑定属性
print(stu1.name,stu1.subject)
print(stu2.name,stu2.subject,stu2.gender)

--------在stu2中动态绑定属性:性别为女----------
张三 语文
李四 数学 女

   这里查看stu1的gendet属性时就会报错,因为gender属性是在创建完实例对象后 单独为stu2绑定的属性

print(stu1.gender)   #AttributeError: 'Students' object has no attribute 'gender'

在上面的代码中,name和subject是stu1和stu2共同具有的属性,这两个变量从init初始化方法中传入的参数(self.name、self.subject是后面创建的所有实例对象所共有的)

(2)动态绑定方法

def show():
    print('定义在类之外的叫做函数')

#将在外面定义好的方法绑定到stu1上
stu1.show=show       #在stu1实例对象中声明stu1.show变量
stu1,show()

stu2.show()    #show()原本在外面叫做函数,现在绑定到实例对象stu1上就变成了show方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值