草庐IT

decorated_method

全部标签

python - 为什么调用 Python 的 'magic method' 不像对应的运算符那样进行类型转换?

当我从整数中减去float时(例如1-2.0),Python会进行隐式类型转换(我认为)。但是当我使用魔术方法__sub__调用我认为是相同的操作时,它突然不再存在了。我在这里缺少什么?当我为自己的类重载运算符时,除了将输入显式转换为我需要的任何类型之外,还有其他方法吗?a=1a.__sub__(2.)#returnsNotImplementeda.__rsub__(2.)#returnsNotImplemented#yet,ofcourse:a-2.#returns-1.0 最佳答案 a-b不仅仅是a.__sub__(b)。如果a

python - 为什么@decorator 不能装饰静态方法或类方法?

为什么decorator不装饰静态方法或类方法?fromdecoratorimportdecorator@decoratordefprint_function_name(function,*args):print'%swascalled.'%function.func_namereturnfunction(*args)classMy_class(object):@print_function_name@classmethoddefget_dir(cls):returndir(cls)@print_function_name@staticmethoddefget_a():return'a

python - 在 Python : property decorator or lambda? 中定义属性的首选方式

在Python中定义类属性的首选方式是什么?为什么?可以在一个类中同时使用两者吗?@propertydeftotal(self):returnself.field_1+self.field_2或total=property(lambdaself:self.field_1+self.field_2) 最佳答案 对于只读属性我使用装饰器,否则我通常会这样做:classBla(object):defsneaky():deffget(self):returnself._sneakydeffset(self,value):self._snea

python - "__method__"和 "method"之间的区别

这个问题在这里已经有了答案:Whatisthemeaningofsingleanddoubleunderscorebeforeanobjectname?(18个回答)关闭8年前。__method__、method和_method__有什么区别?是否有任何原因或出于某种随机原因,人们认为__doc__应该是正确的,而不是doc。是什么让一种方法比另一种更特别? 最佳答案 __method:私有(private)方法。__method__:特殊的Python方法。它们这样命名是为了防止名称冲突。Checkthispageforalist

python - unittest.mock : asserting partial match for method argument

Rubyist在这里编写Python。我有一些看起来像这样的代码:result=database.Query('complicatedsqlwithanid:%s'%id)database.Query被模拟出来,我想测试ID是否正确注入(inject),而不会将整个SQL语句硬编码到我的测试中。在Ruby/RR中,我会这样做:mock(database).query(/#{id}/)但我看不到像在unittest.mock中那样设置“选择性模拟”的方法,至少没有一些毛茸茸的side_effect逻辑。所以我尝试在断言中使用正则表达式:withpatch(database)asMockD

ruby-on-rails - NoMethodError : undefined method `[]' for false:FalseClass

这里是日志umair-2:game-minionumairejaz$railsc/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/script_rails_loader.rb:11:warning:Insecureworldwritabledir/usr/local/bininPATH,mode040777/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/bundler-1.0.18/lib/bundler/runti

ruby-on-rails - NoMethodError : undefined method `[]' for false:FalseClass

这里是日志umair-2:game-minionumairejaz$railsc/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/script_rails_loader.rb:11:warning:Insecureworldwritabledir/usr/local/bininPATH,mode040777/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/bundler-1.0.18/lib/bundler/runti

python - 我应该什么时候使用@classmethod,什么时候使用def method(self)?

在集成我以前没有使用过的Django应用程序时,我发现了两种不同的方法来定义类中的函数。作者似乎既独特又有意地使用它们。第一个是我自己经常使用的:classDummy(object):defsome_function(self,*args,**kwargs):#dosomethinghere#selfistheclassinstance另一个是我从不使用的,主要是因为我不明白什么时候使用它:classDummy(object):@classmethoddefsome_function(cls,*args,**kwargs):#dosomethinghere#clsreferstowha

python - Pylint 的 "Too few public methods"消息是什么意思?

我在某些代码上运行Pylint,并收到错误“公共(public)方法太少(0/2)”。这条消息是什么意思?Pylintdocumentation没有帮助:Usedwhenaclasshastoofewpublicmethods,sobesureit'sreallyworthit. 最佳答案 该错误基本上表明类并不意味着只是存储数据,因为您基本上将类视为字典。类应该至少有几个方法来操作它们所持有的数据。如果你的类(class)是这样的:classMyClass(object):def__init__(self,foo,bar):sel

Python ElementTree 模块 : How to ignore the namespace of XML files to locate matching element when using the method "find", "findall"

我想用findall的方法在ElementTree模块中定位到源xml文件的一些元素。但是,源xml文件(test.xml)具有命名空间。我将xml文件的一部分截断为示例:Updates9/26/201210:30:34AMAllRightsReserved.newlicense.htmN示例python代码如下:fromxml.etreeimportElementTreeasETtree=ET.parse(r"test.xml")el1=tree.findall("DEAL_LEVEL/PAID_OFF")#ReturnNoneel2=tree.findall("{http://ww