首页 > 代码库 > 【python】类(资料+疑惑)
【python】类(资料+疑惑)
1.http://python-china.org/t/77 有关method binding的理解
2.[Python] dir() 与 __dict__,__slots__ 的区别
3.Descriptor HowTo Guide
4.如何理解 Python 的 Descriptor?
5.简明Python魔法 - 1
6.简明Python魔法 - 2
7.详解Python中 __get__和__getattr__和__getattribute__的区别
8.定制类
9.Python 的 type 和 object 之间是怎么一种关系?
下面的几段代码为什么能够正确运行,运行时都发生了些什么???
class MyInt(int): def __init__(self, v): pass def square(self): return self * self def hello(): print ‘hello‘ n = MyInt(2) print n.__dict__ print MyInt.__dict__ n.hello = hello n.hello() print n.__dict__
import types class Log(object): def __init__(self, f): self.f = f def __get__(self,obj,cls): print self.f.__name__, ‘called‘ return types.MethodType(self.f, obj, cls) class C(object): @Log def f(self): pass c = C() c.f()
class C1(object): a = ‘abc‘ def __getattribute__(self, *args, **kwargs): print("__getattribute__() is called") return object.__getattribute__(self, *args, **kwargs) def __getattr__(self, name): print("__getattr__ is called") return name + "from getattr" def __get__(self, instance, owner): print("__get__() is called", instance, owner) return self def foo(self, x): print(x) class C2(object): d = C1() if __name__ == "__main__": c = C1() c2 = C2() print "=====" print(c.a) print "------" print(c.zzzz) print "------" c2.d print "------" print(c2.d.a)
【python】类(资料+疑惑)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。