python与h5结合实例_【Python】如何给实例添加 方法?

class A(){

}

class B extend A{

function test(){

}

}

假如目前已经有一个 A类的实例 , 如何让这个 实例 也能够使用 test 方法呢?

不能修改 A 类

php 和 python 分别怎么做? 如果可以的话

之前写php时候, 用其他的包, 会遇到调用结果返回的已经是实例对象了, 但是期望增加一些自己的方法, 但是原始包又没有给 注入依赖 的入口

ps: 把A的实例, 转换为B的实例

//我要的就是这样的 magic 函数

a = new A();

function magic(A &a){

//%^&*$%^#$%^

}

//使得

get_class(magic(a)) == B //<===> true

想知道有没有语法层面就能解决这个问题的

回答

PHP 5.4新增了闭包绑定,将闭包函数绑定到一个类。

Python里可以实现动态的绑定实例方法,举例如下:

class A:

pass

class B(A):

def test(self):

print "B's test method"

a = A()

现在给a绑定一个test方法,注意的是不能绑定到B的test,你不能A.test = B.test

def test(self):

print 'outside test method'

A.test = test

a.test()

给已有的类或实例增加方法,对于动态语言很容易。例如对js:

function A(){

this.name = 'a'

}

var a = new A

给a添加一个test方法

a.test = function(){

console.log(this.name, 'test')

}

或者在原型上添加:

A.prototype.test = function(){

console.log(this.name, 'test')

}

调用a.test(),都会输出: “a test”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值