python methodtype_Python的实例定属性和方法或类绑定方法

一、给实例对象绑定属性和方法:

1、给实例绑定属性:先定义一个Student类

#!/usr/bin/python

class Student(object):

pass

然后绑定属性:

s = Student()

s.name = 'AAA' # 动态给实例绑定一个属性

print(s.name)#输出AAA

2、给实例绑定方法:先定义一个方法

def add(self,a,b):

self.a = a

self.b = b

return self.a +self.b

然后绑定方法:

MethodType把方法绑定在类实例上时,每个实例有自己单独的指向区域,互不干扰。MethodType(方法名,实例对象)

from types import MethodType

s.add = MethodType(add,s)

print(s.add(10,20))#输出30

print(s.a)#输出10

print(s.b)#输出20

二、给类绑定方法:

用MethodType将方法绑定到类,并不是将这个方法直接写到类内部,而是在内存中创建一个link指向外部的方法,在创建实例的时候这个link也会被复制。

MethodType(方法名,类名)

Student.add = MethodType(add,Student)

s2 = Student()

print(s2.add(10,60))#输出70

#也可以把函数直接赋给类.xxx

Student.add = add

s3 = Student()

print(s3.add(10,60))#输出70

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 时间间隔,ORACLE JOB间隔时间参考

关键字: oracle job 间隔时间 trunc假设你的存储过程名为PROC_RAIN_JM再写一个存储过程名为PROC_JOB_RAIN_JM内容是:Create Or Replace Procedure PROC_JOB_RAIN_JM Is li_jobno Number; Begin DBMS_JOB.SUBMIT(li_jobno,PROC_RAIN_JM;,SYSDATE,TRU…

canvas画布会黑屏吗_Android SurfaceView 黑屏问题

说一个真实的案例。其中需求要做一个绘图功能,一听到绘图,自然而然就像到了SurfaceView这个类。所以我就用了。android:layout_width"match_parent"android:layout_height"match_parent"android:orientation"vertical" &g…

oracle连续周数,详细讲解Oracle数据库的“周数计算”

详细讲解Oracle数据库的“周数计算”以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!——日期计算 算第n周的第一天及最后一天是几号 by keynes—— ww的算法为每年 月 日为第一周开始 date …

probe request帧结构_WLAN 无线网络 09 - 管理帧

0000,Association request:关联请求帧认证成功后,STA就会进入关联阶段, 这个交互的目的是为了加入这个BSS 并获取一个AID。通过Association Request携带的信息,使AP了解STA的相关能力信息,这样 AP就可以决定…

oracle 31640,导数据时ora-31640报错

单实例数据库10.2.0.4,目标数据库11.2.0.3 rac,目标准备将单实例上的数据导入到rac数据库。在导入过程中报错如下:Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA. . imported "LBSBUS"."T_MSG_SEND_DETAIL" …

oracle rman备份spfile,RMAN备份恢复之SPFILE的恢复(一)

缺少初始化文件,数据库是无法启动的。如果通过RMAN备份了初始化参数,那么可以通过RMAN对初始化参数进行恢复。这篇文章简单介绍CATALOG方式下初始化参数的恢复问题。初始化参数的丢失和损坏,并不会造成太严重的问题,即使是最坏的情…

c# 获取路径的盘符_c#获取驱动器盘符

在编写某些Windows管理应用程序时,能够从自定义的驱动器选择列表框中进行选择无疑是非常专业的,使用Delphi或者C的早期版本时我们都必须使用Win32所提供的许多关于获取磁盘信息的API函数来分别获取像卷标、序列号以及剩余空间等信息,现在我们…

php fckeditor demo,如何使用PHP添加fckeditor

[更新答案]你需要把你的fckeditor代码放在 标签而不是在顶部。此外,$_POST["FCKEditor"]需要放进去$oFCKeditor->Value变量。这样做:它在我的机器上工作正常,并在fckeditor文本区域内显示格式化的HTML:EditorTitle : include("fckeditor.php");$sBaseP…

php 命名空间通俗易懂_PHP进阶由浅入深掌握面向对象开发

视频教程出自黑马程序员PHP基础_由浅入深掌握面向对象开发【讲解方式】系统梳理和分解知识,各个点逐步讲解,由浅入深,通俗易懂,层层深入【课程亮点】1,已经完成PHP基础知识学习的朋友有帮助2,生动形象&…

qt读oracle时间戳,QT利用QDateTime获取当前时间戳的方法toTime_t

1.toTime_t()把2014年12月19日10:24:40这样的QDateTime的格式转变为1418955940这样的时间戳QDateTime time QDateTime::currentDateTime(); //获取当前时间int timeT time.toTime_t(); //将当前时间转为时间戳2.与toTime_t()功能相反的是fromTime_…

怎么查看父子级目录linux,如何查找linux中特定父目录的所有文件?

如何在linux命令终端中找到具有特定父目录的所有文件?我知道找到所有的文件,使用这样查找:find . -name filename.extension但是可以找到所有filename.extension文件与父目录的文件夹名吗?我尝试了以下操作,但这不行:find . -name…

如何在matlab里输入复杂公式_在MATLAB作图中输出漂亮的公式

函数语法效果语法效果语法效果\sin\theta\cos\theta\tan\theta\arcsin\frac{L}{r}\arccos\frac{T}{r}\arctan\frac{L}{T}\sinh g\cosh h\tanh i\operatorname{sh}j\operatorname{argsh}k\operatorname{ch}h\operatorname{argch}l\operatorname{th}i\operatorname{argth}mk(x)\l…

ln -s命令 linux,Linux下 ln -s 软链接用法

NAMEln - make links between filesSYNOPSISln [OPTION]... TARGET [LINK_NAME]ln [OPTION]... TARGET... DIRECTORYln [OPTION]... --target-directoryDIRECTORY TARGET...软链接用法是: ln -s 实际存在的目标目录 链接名称(不存在的) 。[rootDMDIDATAGUARD /]# cd…

cryptapi双向认证_[加密解密]CryptoAPI简介

CryptoAPI概述Windows CryptoAPI是Microsoft 公司提出的安全加密应用服务框架,也是PKI推荐使用的加密 API。它提供了在Win32 环境下使用认证、编码、加密和签名等安全服务时的标准加密接口,用于增强应用程序的安全性与可控性。应用开发者可以在不了解复杂…

vue前后分离session实现_vue2 前后端分离项目ajax跨域session问题解决

最近学习使用vuejs前后端分离,重构一个已有的后台管理系统,遇到了下面这个问题:实现跨域请求时,每次ajax请求都是新的session,导致无法获取登录信息,所有的请求都被判定为未登陆。1、 vuejs ajax跨域请求最…

win10时间和linux不同步时间,ubuntu16和windows10的时间同步问题

一句话搞定sudo hwclock --localtime --systohc命令: hwclock全称: hardware clock硬件时钟作用: Query or set the hardware clock.Functions:-h, --help show this help text and exit-r, --show read hardware clock and print result--get re…

linux直接用iso文件装服务,linux系统安装iso文件方法

摘要:linux系统下怎么安装iso文件?安装步骤:1、在/mnt目录下,创建相应的iso文件夹,例如iso。2、运行以下命令,挂载iso文...安装步骤:1、在/mnt目录下,创建相应…

smbus协议的command_SMBus总线概述

1.概述:系统管理总线是一种两线制接口。它基于I2C 总线原理演变而来,可以认为是简化版的I2C总线。SMBus最初是应用到智能电池,如电池充电器和一个微控制器。其提供一个系统和电源管理相关的任务控制总线。如今,SMBus总线可以连接的…

在电脑上显示未知发布者怎么办_电脑提示未知发布者 - 卡饭网

IE浏览器提示未知发布者安全警告怎么办IE浏览器提示未知发布者安全警告怎么办 IE浏览器提示未知发布者安全警告的解决方法, IE浏览器提示未知发布者怎么办?安下小编就来分析一下. 1.打开IE浏览器,从右上角打开Internet选项; 2.点击切换到"高级"选项卡; 3.在设置列表…

linux 邮件日志,linux下如何建立邮件日志

先关闭sendmailservice sendmail stopchkconfig sendmail off安装DNSmount /dev/cdrom /mntyum install bind-*配置主DNS服务器vim /var/named/chroot/etc/named.confoptions {directory "/var/named";};zone "daijingjie.com" {type master;file &qu…