python面向对象中绑定方法与类型

绑定方法

class Student:

    school = 'University of Technology'

    count = 0

    def __init__(self, x, y):

        self.name = x

        self.age = age

        Student.count += 1

    def choose_couse(self):

        print('there is choosing course')

上一节我们已经知道类名称空间中定义的数据属性和函数属性都是共享给所有对象用的

对象名称空间中定义的只有数据属性,而且是对象所独有的属性

stu1 = Student('zhangsan',18)

stu2 = Student('lisi', 19 )

print(stu1.name)

print(stu1.school)

我们之前就已经知道类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着使用时需要完全遵循函数的参数原则,该传几个值就传几个

print(Student.choose_course)

Student.choose_course(124563)

那么我们一直没有提及的是,类中定义的函数是否也可以共享给对象使用?是的,类中定义的函数可以共享给所有对象,而且是绑定给对象使用的

绑定的效果就为:绑定给谁,就应该由谁来调用,谁来调用就会将谁作为第一个参数自动传入

print(id(stu1.choose_course))

print(id(stu2.choose_course))

print(id(stu1.school))

print(id(stu2.school))

补充:类中定义的函数,类确实可以使用,但其实类定义的函数大多情况下都是绑定给对象用的,所以在类中定义的函数都应该自带一个参数self

类即类型

在python3中,统一了类与类型的概念,类就是类型

class Student:

    school = 'University of Technology'

    count = 0

    def __init__(self, x, y):  # 会在调用类时自动触发

        self.name = x

        self.age = age

        Student.count += 1

    def choose_couse(self):

        print('%s  choosing course'%self.name)

stu1 = Student('zhangsan' , 22)

stu1.choose_course(1)  #等价于Student.choose_course(stu1, 1)

我们以列表为例,深化类即类型这一概念

l=[1,2,3] # 等价于l=list([1,2,3])

print(type(l))

l.append(4) # 等价于list.append(l,4)

list.append(l,4)

print(l)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值