前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类与对象的绑定方法

类与对象的绑定方法

作者头像
py3study
发布2020-01-15 01:06:29
7520
发布2020-01-15 01:06:29
举报
文章被收录于专栏:python3

类与对象的绑定方法

代码语言:javascript
复制
class OldboyStudent:
    school = 'oldboy'

    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.sex = gender

    def choose_course(self):
        print(f'{self.name} choosing course')

    def func(self):
        print('from func')
  • 类名称空间中定义的数据属性和函数属性都是共享给所有对象用的
  • 对象名称空间中定义的只有数据属性,而且是对象所独有的数据属性
86-类与对象的绑定方法-绑定.jpg
86-类与对象的绑定方法-绑定.jpg

类的绑定对象

代码语言:javascript
复制
stu1 = OldboyStudent('nick', 18, 'male')
stu2 = OldboyStudent('sean', 17, 'male')
stu3 = OldboyStudent('tank', 19, 'female')

print(stu1.name)
print(stu1.school)
代码语言:javascript
复制
nick
oldboy
  • 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已,意味着需要完全遵循函数的参数规则,该传几个值就传几个
86-类与对象的绑定方法-规则.jpg
86-类与对象的绑定方法-规则.jpg
代码语言:javascript
复制
print(OldboyStudent.choose_course)
代码语言:javascript
复制
<function OldboyStudent.choose_course at 0x10558e840>
代码语言:javascript
复制
try:
    OldboyStudent.choose_course(123)
except Exception as e:
    print(e)
代码语言:javascript
复制
'int' object has no attribute 'name'

对象的绑定方法

  • 类中定义的函数是共享给所有对象的,对象也可以使用,而且是绑定给对象用的,
  • 绑定的效果:绑定给谁,就应该由谁来调用,谁来调用就会将谁当作第一个参数自动传入
86-类与对象的绑定方法-self.jpg
86-类与对象的绑定方法-self.jpg
代码语言:javascript
复制
print(id(stu1.choose_course))
print(id(stu2.choose_course))
print(id(stu3.choose_course))
print(id(OldboyStudent.choose_course))
代码语言:javascript
复制
4379911304
4379911304
4379911304
4384680000
代码语言:javascript
复制
print(id(stu1.school))
print(id(stu2.school))
print(id(stu3.school))
代码语言:javascript
复制
4380883688
4380883688
4380883688
代码语言:javascript
复制
print(id(stu1.name), id(stu2.name), id(stu3.name))
代码语言:javascript
复制
4384509600 4384506072 4384507864
代码语言:javascript
复制
stu1.choose_course()
代码语言:javascript
复制
nick choosing course
代码语言:javascript
复制
stu2.choose_course()
代码语言:javascript
复制
sean choosing course
代码语言:javascript
复制
stu3.choose_course()
代码语言:javascript
复制
tank choosing course
  • 补充:类中定义的函数,类确实可以使用,但其实类定义的函数大多情况下都是绑定给对象用的,所以在类中定义的函数都应该自带一个参数self
代码语言:javascript
复制
stu1.func()
代码语言:javascript
复制
from func
代码语言:javascript
复制
stu2.func()
代码语言:javascript
复制
from func
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/06/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类与对象的绑定方法
  • 类的绑定对象
  • 对象的绑定方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档