曾经,博主的房东养了只金毛叫奶茶,今天就拿它当议题好了. 博主写本文时正在被广州的蚊子围攻. #反射练习 class animal(object): def __init__(self,name,fool): self.name = name self.fool = fool def dog(self): print("This is %s,it's a dog.it eat %s"%(self.name,self.fool)) d = animal("奶茶",&q…
在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性,我们还是可以通过非常手段来进行访问的.不过这点说白了,好像c#中也可以通过指定BindingFlags.NonPublic的方式结合反射来调用. 假设有如下一个python类: class Securityp(object): def __inaccessible(self): print "Bet you can't see me...…
假设有如下一个python类: class Foo(object): def __a(self): print "Bet you can't see me..." def bar(self): self.__a() 而s是Securityp的一个实例,我们 s._Foo__a() 这种机制可以阻止继承类重新定义或者更改方法的实现,比如,定义一个Foo的派生类: class Goo(Foo): def __a(self): print 'private method of Goo' g …
研究email源码学到的 class test(): """Class for generating text/* type MIME documents.""" def __init__(self): self._headers = [] def __getitem__(self, name, failobj=None): name = name.lower() for k, v in self._headers: if k.lower() =…