绑定方法

绑定到对象的方法

定义:凡是在类中定义的函数(没有被任何装饰器修饰),都是绑定给对象的,就是给对象用的。
特点:obj.method() 自动把obj作第一个参数传入,因为method的逻辑就是要处理这个obj
tips: 对象的绑定方法,类也可以调用,但是必须把对象传入作为第一个参数。

绑定到类的方法

定义:凡是在类中定义的,被@classmethod装饰的函数,就是绑定到类的方法。
特点:cls.method() 自动把cls作为第一个参数传入。
应用:定制实例化。不管是对象还是类调构造器 __init__ 来初始化实例,都需要手动传入参数,下面我们通过类的绑定方法来实现‘自动’传参:

'''settings.py内容:
IP = '127.0.0.1'
PORT = 3306
'''
class MySQL:def __init__(self,ip,port):self.ip = ipself.port = port@classmethoddef from_conf(cls): # 在这里定制自己的实例化import settingsreturn cls(settings.IP, settings.PORT)  # 其实并没有自动传值一说,只是在这一步传入了。m = MySQL.from_conf()   # 似乎就可以不用传值创建对象了。
print(m.ip, m.port)

非绑定方法

定义:凡是在类中定义的,被@staticmethod装饰的函数,就是非绑定方法。
特点:相当于一个普通函数,obj.func() 或 cls.func() 类和对象都可以调用,不会自动传值,不依赖类和对象。

绑定方法与非绑定方法相关推荐

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

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

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

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

  3. 绑定方法和非绑定方法

    绑定方法 绑定方法:绑定给谁就是给谁用 绑定到对象的方法:凡是在类中定义的函数(没有被任何装饰器修饰),都是绑定给对象用的:特点:obj.bar()自动把obj当作第一个参数传入. 绑定到类的方法:在 ...

  4. Day20:绑定方法与非绑定办法、多态和多态性

    一.绑定方法与非绑定方法 类中定义的函数分成两大类: 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定 ...

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

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

  6. python_day7 绑定方法与非绑定方法

    在类中定义函数如果 不加装饰器 则默认 为对象作为绑定方法 如果增加 classmethod 是 以 类 作为绑定方法 增加 classmethod 是 非绑定方法,就是不将函数 绑定 ####### ...

  7. Day7 子类调用父类的方法supper 绑定方法与非绑定方法

    supper:可以利用supper来重用父类的方法,可以不用指名道姓的调用了. 1 class OldboyPeople: 2 school = 'oldboy' 3 def __init__(sel ...

  8. python123怎么绑定慕课_python学习30——绑定方法与非绑定方法

    一 绑定方法与非绑定方法 ​ 类中定义的函数分为两大类:绑定方法和非绑定方法 ​ 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法. ​ 在类中正常定义的函数默认是绑定到对象的,而为某个函数加 ...

  9. static方法与非static方法是否可以互相调用

    情况一.static方法调用非static方法 非静态方法只有实例对象才可调用,而静态方法随着类的加载而加载,类的加载在实例对象产生之前,所以静态方法不能调用非静态方法 情况二.非atic方法调用st ...

  10. salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)

    在salesforce的classic中,我们使用{!expresion}在前台页面展示信息,在lightning中,上一篇我们也提及了,如果展示attribute的值,可以使用{!v.expresi ...

最新文章

  1. vue脚手架和html,HTML和静态资源
  2. Next.js踩坑入门系列(七) —— 其他相关知识
  3. 字符串相加—leetcode415
  4. Netty学习笔记(三)EventLoopGroup开篇
  5. 有序的Map集合--LinkedHashMap
  6. C#处理JSON 数据
  7. Mysql group by 问题
  8. WP百度搜索推送管理插件
  9. 电商网站模板_微购物商城网站建设:要做好这6点!
  10. grafa导出数据图标_第5章 数据与可视化 - Grafana与数据可视化 - 《Prometheus操作指南》 - 书栈网 · BookStack...
  11. 如何用计算机模拟光的传播,菲涅尔计算全息干涉图的制作与模拟再现.doc
  12. Linux安装libmodbus库
  13. eXosip注册函数与使用说明
  14. mybatis与spring集成
  15. JAVA-----集合子接口Queue及其子接口Deque
  16. Linux 脚本部署应用宝,应用宝新版继续整合资源,腾讯移动分发再加力
  17. 踩坑日志:go并发读取文件
  18. MATLAB(SimMechanics)机器人可视化运动仿真-关节位置控制篇
  19. C语言int型数据范围
  20. Oracle(三)--数据库建表操作

热门文章

  1. (王道408考研数据结构)第六章图-第二节1:图的存储结构(邻接矩阵、邻接表、十字链表和邻接多重表)
  2. event_base_loop
  3. C++11 并发指南四(future 详解一 std::promise 介绍)
  4. C语言:16进制字符串转int
  5. ngnix高并发的原理实现(转)
  6. localStorage 真正的本地缓存
  7. Visual Studio的下载安装
  8. [原]openstack-kilo--issue(十八) Error parsing template file: Template format version not found.
  9. 题解---2015年浙江理工12月校赛
  10. SCSF 系列:Smart Client Software Factory 与 ObjectBuilder