y394643656 发表于 2017-8-5 00:07:14

print那里是不是漏了( )?

y394643656 发表于 2017-8-5 00:11:55

__bases__功能好像用不了,你们呢?

y394643656 发表于 2017-8-5 00:12:32

zhang12247 发表于 2016-4-5 11:53
**** 作者被禁止或删除 内容自动屏蔽 ****

我的也是这样...

y394643656 发表于 2017-8-5 00:14:36

roar123 发表于 2015-9-17 20:47
看不懂,看来还得继续努力啊:sad

{:10_266:} 同样不是很懂+1

tongtongtong 发表于 2017-8-14 16:08:59

jiexinren 发表于 2015-8-3 16:04
这个在我电脑上无法运行啊(3.4.3,64位版本)
Traceback (most recent call last):
File "E:/桌面/j ...

请问你的问题解决了吗

银色的色 发表于 2017-10-8 22:35:47

不懂额。{:10_269:}

rsdeepblue 发表于 2018-1-19 10:59:16

这是什么意思?父类里面有插件的方法,两个子类继承了这个方法,然后在两个实例化的子类中插入类c,于是c就获得了两个子类的方法么?

伊尹 发表于 2018-1-30 10:24:07

{:10_256:}

majia1015 发表于 2018-2-1 15:11:56

owner.__dict__ = f
实例化c就是owner,那么是什么意思,

回忆001 发表于 2018-2-14 13:31:30

Plugin 好东西, 好东西往往不知道是啥意思

回忆001 发表于 2018-2-14 13:32:08

有人懂第三个的原理吗?

况qiqi 发表于 2018-3-21 19:28:52

在python3下运行出错
Traceback (most recent call last):
File "E:/pythonpro/lesson36-10.py", line 43, in <module>
    AFeature().plugin(c)
File "E:/pythonpro/lesson36-10.py", line 12, in plugin
    owner.__dict__==f
KeyError: 'get_a_value'

abdgcjyem 发表于 2018-4-10 14:32:41

emmm 一知半解 继续加油

fuwaandhuluwa 发表于 2018-5-5 22:18:42

牛逼,Python3也正常能运行插件方式,使用__dict__可以扩展对象的方法,这写方法保存在_exported_methods 列表里边

womuer 发表于 2018-5-15 23:59:45

c = Combine()          #将c归入组合类
AFeature().plugin(c)    #将A类以及父类的方法属性给予c
BFeature().plugin(c)    #同上

c.get_a_value()         #调用A类的方法
c.get_b_value()

不知对不对
      

学学看看 发表于 2018-6-27 19:41:56

贺老大的逆袭 发表于 2018-7-11 23:13:36

前两个都很容易理解,第三个看着好复杂啊

ErTian 发表于 2018-7-25 14:51:48

略懂

Yukawa 发表于 2018-8-10 17:16:31

况qiqi 发表于 2018-3-21 19:28
在python3下运行出错
Traceback (most recent call last):
File "E:/pythonpro/lesson36-10.py", line...

你多打了一个等号,变成判断是否相等了。而这里是要在dict里面新创建一个方法并赋值

土匪加步枪 发表于 2018-8-19 13:43:41

太经典了。重点,这个是修改类的实列化对象,并不修改类。所以经典。需要仔细看,重复看,才能品味出。但是我觉得最后有点写的不好,应该改一些就好了。
例如:
class Combine:
    def get_a_value(self):
         print('my is origin func')

运行变成:
c=Combine()
AFeatrue().plugin(c) #对实列化对象c进行修改,get_a_value函数
BFeature().plugin(c)#对实列化对象c添加get_b_value函数
b=Combine()
c.get_a_value()
b.get_a_value()
c.get_b_value()
页: 1 2 [3] 4 5 6 7
查看完整版本: Python Mixin 编程机制(转)