Python绑定方法与非绑定方法详解

发布时间 - 2026-01-11 02:50:58    点击率:

本文实例为大家分享了Python绑定方法与非绑定方法,供大家参考,具体内容如下

定义:

绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):

    1. 绑定到类的方法:用classmethod装饰器装饰的方法。

                为类量身定制

                类.boud_method(),自动将类当作第一个参数传入

              (其实对象也可调用,但仍将类当作第一个参数传入)

    2. 绑定到对象的方法:没有被任何装饰器装饰的方法。

               为对象量身定制

               对象.boud_method(),自动将对象当作第一个参数传入

             (属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说)

非绑定方法:用staticmethod装饰器装饰的方法

         不与类或对象绑定,类和对象都可以调用,但是没有自动传值那么一说。就是一个普通工具而已

    注意:与绑定到对象方法区分开,在类中直接定义的函数,没有被任何装饰器装饰的,都是绑定到对象的方法,可不是普通函数,对象调用该方法会自动传值,而staticmethod装饰的方法,不管谁来调用,都没有自动传值一说

二、绑定方法

绑定给对象的方法(略)

绑定给类的方法(classmethod)

  classmehtod是给类用的,即绑定到类,类在使用时会将类本身当做参数传给类方法的第一个参数(即便是对象来调用也会将类当作第一个参数传入),python为我们内置了函数classmethod来把类中的函数定义成类方法

import settings
class MySQL:
 def __init__(self,host,port):
  self.host=host
  self.port=port

 @classmethod
 def from_conf(cls):
  print(cls)
  return cls(settings.HOST,settings.PORT)

print(MySQL.from_conf) #<bound method MySQL.from_conf of <class '__main__.MySQL'>>
conn=MySQL.from_conf()

conn.from_conf() #对象也可以调用,但是默认传的第一个参数仍然是类

三、非绑定方法

在类内部用staticmethod装饰的函数即非绑定方法,就是普通函数

statimethod不与类或对象绑定,谁都可以调用,没有自动传值效果

import hashlib
import time
class MySQL:
 def __init__(self,host,port):
  self.id=self.create_id()
  self.host=host
  self.port=port
 @staticmethod
 def create_id(): #就是一个普通工具
  m=hashlib.md5(str(time.time()).encode('utf-8'))
  return m.hexdigest()


print(MySQL.create_id) #<function MySQL.create_id at 0x0000000001E6B9D8> #查看结果为普通函数
conn=MySQL('127.0.0.1',3306)
print(conn.create_id) #<function MySQL.create_id at 0x00000000026FB9D8> #查看结果为普通函数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Python  # 绑定方法  # 非绑定方法  # Python类绑定方法及非绑定方法实例解析  # 详解python方法之绑定方法与非绑定方法  # Python类的绑定方法和非绑定方法实例解析  # python中绑定方法与非绑定方法的实现示例  # 绑定  # 第一个  # 一说  # 谁来  # 量身  # 不与  # 一个普通  # 类中  # 都是  # 也可  # 仍然是  # 将它  # 会将  # 大家分享  # 仍将  # 具体内容  # 大家多多  # 与非  # 给谁  # 谁都可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  如何在云主机快速搭建网站站点?  如何用PHP快速搭建高效网站?分步指南  大型企业网站制作流程,做网站需要注册公司吗?  Laravel如何记录自定义日志?(Log频道配置)  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  canvas 画布在主流浏览器中的尺寸限制详细介绍  米侠浏览器网页背景异常怎么办 米侠显示修复  微信h5制作网站有哪些,免费微信H5页面制作工具?  php结合redis实现高并发下的抢购、秒杀功能的实例  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  网站制作价目表怎么做,珍爱网婚介费用多少?  原生JS实现图片轮播切换效果  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel如何升级到最新版本?(升级指南和步骤)  Python并发异常传播_错误处理解析【教程】  如何获取PHP WAP自助建站系统源码?  nodejs redis 发布订阅机制封装实现方法及实例代码  如何用搬瓦工VPS快速搭建个人网站?  黑客入侵网站服务器的常见手法有哪些?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  如何快速生成高效建站系统源代码?  香港服务器WordPress建站指南:SEO优化与高效部署策略  Laravel如何配置和使用缓存?(Redis代码示例)  高端建站如何打造兼具美学与转化的品牌官网?  如何在服务器上配置二级域名建站?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  简单实现Android文件上传  如何做网站制作流程,*游戏网站怎么搭建?  如何用美橙互联一键搭建多站合一网站?  轻松掌握MySQL函数中的last_insert_id()  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  lovemo网页版地址 lovemo官网手机登录  如何用5美元大硬盘VPS安全高效搭建个人网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何用PHP工具快速搭建高效网站?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何基于云服务器快速搭建个人网站?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  详解Android中Activity的四大启动模式实验简述  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted