绑定方法与非绑定方法
绑定方法
绑定到对象的方法
定义:凡是在类中定义的函数(没有被任何装饰器修饰),都是绑定给对象的,就是给对象用的。
特点: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() 类和对象都可以调用,不会自动传值,不依赖类和对象。
绑定方法与非绑定方法相关推荐
- Python基础教程:绑定方法和非绑定详细用法
绑定和方法调用 1.首先,方法仅仅是类内部定义的函数.(这意味着方法是类属性而不是实例属性) 2.其次,方法只有在其所属的类拥有实例时,才能被调用.当存在一个实例时,方法才被认为是绑定到那个实例了.没 ...
- python:绑定方法和非绑定方法
类中定义的方法大致可以分为两类:绑定方法和非绑定方法.其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法. 一.绑定方法 1.1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的 ...
- 绑定方法和非绑定方法
绑定方法 绑定方法:绑定给谁就是给谁用 绑定到对象的方法:凡是在类中定义的函数(没有被任何装饰器修饰),都是绑定给对象用的:特点:obj.bar()自动把obj当作第一个参数传入. 绑定到类的方法:在 ...
- Day20:绑定方法与非绑定办法、多态和多态性
一.绑定方法与非绑定方法 类中定义的函数分成两大类: 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): 1. 绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定 ...
- 全面解析python类的绑定方法与非绑定方法(转载+自己的消化与理解)
参考链接来自: https://www.cnblogs.com/vipchenwei/p/7126772.html#_label1 先说下,这篇文章中,其实有这么个事情: 也就是,该文章有的函数后面没 ...
- python_day7 绑定方法与非绑定方法
在类中定义函数如果 不加装饰器 则默认 为对象作为绑定方法 如果增加 classmethod 是 以 类 作为绑定方法 增加 classmethod 是 非绑定方法,就是不将函数 绑定 ####### ...
- Day7 子类调用父类的方法supper 绑定方法与非绑定方法
supper:可以利用supper来重用父类的方法,可以不用指名道姓的调用了. 1 class OldboyPeople: 2 school = 'oldboy' 3 def __init__(sel ...
- python123怎么绑定慕课_python学习30——绑定方法与非绑定方法
一 绑定方法与非绑定方法 类中定义的函数分为两大类:绑定方法和非绑定方法 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法. 在类中正常定义的函数默认是绑定到对象的,而为某个函数加 ...
- static方法与非static方法是否可以互相调用
情况一.static方法调用非static方法 非静态方法只有实例对象才可调用,而静态方法随着类的加载而加载,类的加载在实例对象产生之前,所以静态方法不能调用非静态方法 情况二.非atic方法调用st ...
- salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)
在salesforce的classic中,我们使用{!expresion}在前台页面展示信息,在lightning中,上一篇我们也提及了,如果展示attribute的值,可以使用{!v.expresi ...
最新文章
- vue脚手架和html,HTML和静态资源
- Next.js踩坑入门系列(七) —— 其他相关知识
- 字符串相加—leetcode415
- Netty学习笔记(三)EventLoopGroup开篇
- 有序的Map集合--LinkedHashMap
- C#处理JSON 数据
- Mysql group by 问题
- WP百度搜索推送管理插件
- 电商网站模板_微购物商城网站建设:要做好这6点!
- grafa导出数据图标_第5章 数据与可视化 - Grafana与数据可视化 - 《Prometheus操作指南》 - 书栈网 · BookStack...
- 如何用计算机模拟光的传播,菲涅尔计算全息干涉图的制作与模拟再现.doc
- Linux安装libmodbus库
- eXosip注册函数与使用说明
- mybatis与spring集成
- JAVA-----集合子接口Queue及其子接口Deque
- Linux 脚本部署应用宝,应用宝新版继续整合资源,腾讯移动分发再加力
- 踩坑日志:go并发读取文件
- MATLAB(SimMechanics)机器人可视化运动仿真-关节位置控制篇
- C语言int型数据范围
- Oracle(三)--数据库建表操作
热门文章
- (王道408考研数据结构)第六章图-第二节1:图的存储结构(邻接矩阵、邻接表、十字链表和邻接多重表)
- event_base_loop
- C++11 并发指南四(future 详解一 std::promise 介绍)
- C语言:16进制字符串转int
- ngnix高并发的原理实现(转)
- localStorage 真正的本地缓存
- Visual Studio的下载安装
- [原]openstack-kilo--issue(十八) Error parsing template file: Template format version not found.
- 题解---2015年浙江理工12月校赛
- SCSF 系列:Smart Client Software Factory 与 ObjectBuilder