例:

class OldboyStudent:school='oldboy'def __init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexdef learn(self):print('%s is learning' %self.name) #新增self.namedef eat(self):print('%s is eating' %self.name)def sleep(self):print('%s is sleeping' %self.name)s1=OldboyStudent('李坦克','男',18)
s2=OldboyStudent('王大炮','女',38)
s3=OldboyStudent('牛榴弹','男',78)

类中定义的函数(没有被任何装饰器装饰的)是类的函数属性,类可以使用,但必须遵循函数的参数规则,有几个参数需要传几个参数

OldboyStudent.learn(s1) #李坦克 is learning
OldboyStudent.learn(s2) #王大炮 is learning
OldboyStudent.learn(s3) #牛榴弹 is learning

类中定义的函数(没有被任何装饰器装饰的),其实主要是给对象使用的,而且是绑定到对象的,虽然所有对象指向的都是相同的功能,但是绑定到不同的对象就是不同的绑定方法

强调:绑定到对象的方法的特殊之处在于,绑定给谁就由谁来调用,谁来调用,就会将‘谁’本身当做第一个参数传给方法,即自动传值(方法__init__也是一样的道理)

s1.learn() #等同于OldboyStudent.learn(s1)
s2.learn() #等同于OldboyStudent.learn(s2)
s3.learn() #等同于OldboyStudent.learn(s3)

注意:绑定到对象的方法的这种自动传值的特征,决定了在类中定义的函数都要默认写一个参数self,self可以是任意名字,但是约定俗成地写出self。

类即类型

  提示:python的class术语与c++有一定区别,与 Modula-3更像。

  python中一切皆为对象,且python3中类与类型是一个概念,类型就是类

#类型dict就是类dict
>>> list
<class 'list'>#实例化的到3个对象l1,l2,l3
>>> l1=list()
>>> l2=list()
>>> l3=list()#三个对象都有绑定方法append,是相同的功能,但内存地址不同
>>> l1.append
<built-in method append of list object at 0x10b482b48>
>>> l2.append
<built-in method append of list object at 0x10b482b88>
>>> l3.append
<built-in method append of list object at 0x10b482bc8>#操作绑定方法l1.append(3),就是在往l1添加3,绝对不会将3添加到l2或l3
>>> l1.append(3)
>>> l1
[3]
>>> l2
[]
>>> l3
[]
#调用类list.append(l3,111)等同于l3.append(111)
>>> list.append(l3,111) #l3.append(111)
>>> l3
[111]

转载于:https://www.cnblogs.com/liuxiaowei/p/7387566.html

Python 对象的绑定方法相关推荐

  1. python 类的绑定方法和非绑定方法

    一.绑定方法 1.对象的绑定方法 首先我们明确一个知识点,凡是类中的方法或函数,默认情况下都是绑定给对象使用的.下面,我们通过实例,来慢慢解析绑定方法的应用. class People:def __i ...

  2. 全面解析python类的绑定方法与非绑定方法(转载+自己的消化与理解)

    参考链接来自: https://www.cnblogs.com/vipchenwei/p/7126772.html#_label1 先说下,这篇文章中,其实有这么个事情: 也就是,该文章有的函数后面没 ...

  3. Python对象中__del__方法起作用的条件详解

    对象的__ del __是对象在被gc消除回收的时候起作用的一个方法,它的执行一般也就意味着对象不能够继续引用. 示范代码如下: class Demo: def __del__(self): prin ...

  4. python对象_查找Python对象具有的方法

    您似乎可以使用此代码,将"对象"替换为您感兴趣的对象: object_methods = [method_name for method_name in dir(object) i ...

  5. Python基础教程:绑定方法和非绑定详细用法

    绑定和方法调用 1.首先,方法仅仅是类内部定义的函数.(这意味着方法是类属性而不是实例属性) 2.其次,方法只有在其所属的类拥有实例时,才能被调用.当存在一个实例时,方法才被认为是绑定到那个实例了.没 ...

  6. python:绑定方法和非绑定方法

    类中定义的方法大致可以分为两类:绑定方法和非绑定方法.其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法. 一.绑定方法 1.1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的 ...

  7. 第八章 Python 对象和类

    一.什么是对象 在 Pyth 中,对象就是经过实例化的,具体可以操作的一组代码的组合: 对象一般包含数据(变量,更习惯称之为属性 attribute),也包含代码(函数,也称之为方法) 当你想要创建一 ...

  8. python通过函数类属性_函数作为类属性的赋值如何成为Python中的一个方法?

    你说得对,这和描述符协议有关.描述符是在Python中如何将receiver对象作为方法的第一个参数来实现的.您可以从here阅读有关Python属性查找的更多详细信息.下面显示了在较低级别上执行a. ...

  9. Python3中的json对象与python对象转化

    1.直接将Python对象转成json对象,使用方法dumps() import jsond = {"姓名": "curry", "age" ...

  10. 类方法classmethod 绑定方法

    绑定方法 1.凡是类中的方法和函数,都是绑定给对象使用的: 2.绑定方法都有自动传值的功能.传递进去的值,就是对象本身. 3.如果类想调用绑定方法,就必须遵循函数的参数规则,有几个参数,就必须传递几个 ...

最新文章

  1. Mysql练习题13- 员工薪水中位数
  2. 旺苍电子计算机培训学校,广元旺苍技工学校
  3. 笔试题——JavaScript事件循环机制(event loop、macrotask、microtask)
  4. java逆向基础,Java逆向基础之函数
  5. 【大学课程】操作系统知识点
  6. SAP WebIDE 里开发 SAP UI5 应用时,使用 Ctrl + Space 实现代码自动完成功能
  7. 制作HTML类型的email邮件 Background Images and CSS in HTML Email
  8. 01knockout应用开发之遍历简单数据$Index、$data
  9. js高级学习笔记(b站尚硅谷)-9-原型链相关知识
  10. Android 四大开发组件
  11. 【Excel实战】按指定字符拆分字符串
  12. VOC2007/2012数据集解析
  13. 初识人工智能,机器学习,深度学习的关系(概念)
  14. 朱松纯教授:可解释性是人工智能获得人类信任的关键
  15. python 相关性检验怎么计算p值_收藏 | 大神教你用Python预测未来:一文看懂时间序列...
  16. Android UI性能优化 检测应用中的UI卡顿
  17. QQ登录显示无法访问个人文件夹解决办法
  18. Java文字小游戏 The Matrix SalaryMan 1.0v 解读
  19. html居中小圆点点怎么打出来,目录的点怎么打 WORD目录里的点点怎么打
  20. div中内容水平垂直居中

热门文章

  1. javascript 动画效果(多物体缓冲运动,多物体透明度变化,匀速移入移出、链式运动、同时运动)
  2. 二十五、JAVA多线程(五、线程生命周期)
  3. Tensorflow Day1
  4. Android显示shp文件,Arcgis for Android移动平台能直接打开本地的shp文件吗
  5. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_1-4系统的整体演示...
  6. 阶段3 3.SpringMVC·_07.SSM整合案例_03ssm整合之编写Spring框架
  7. 好程序员分享js实现简单的板球游
  8. 前端学习01-07图像标签
  9. JS学习笔记——JavaScript继承的6种方法(原型链、借用构造函数、组合、原型式、寄生式、寄生组合式)...
  10. HDU5447 Good Numbers