草庐IT

decorator

全部标签

python - 如何使用外部 fixture 跳过 pytest?

背景我正在运行py.test与fixture在conftestfile.你可以看到下面的代码(这一切都很好):example_test.pyimportpytest@pytest.fixturedefplatform():return"ios"@pytest.mark.skipif("platform=='ios'")deftest_ios(platform):ifplatform!='ios':raiseException('notios')deftest_android_external(platform_external):ifplatform_external!='androi

python - 如何将装饰器应用于 lambda?

是否有在Python中对lambda函数使用装饰器的语法?示例:defsimpledecorator(f):defnew_f():print"Usingadecorator:"f()returnnew_f@simpledecoratordefhello():print"Helloworld!"这个输出的结果:>>>hello()Usingasimpledecorator:Helloworld!然而,当我尝试使用lambda时:@anotherdecoratorf=lambdax:x*2我明白了:File"我觉得这可能是通过允许将语句“注入(inject)”到其中来使lambda更加通用

python - 如何将装饰器应用于 lambda?

是否有在Python中对lambda函数使用装饰器的语法?示例:defsimpledecorator(f):defnew_f():print"Usingadecorator:"f()returnnew_f@simpledecoratordefhello():print"Helloworld!"这个输出的结果:>>>hello()Usingasimpledecorator:Helloworld!然而,当我尝试使用lambda时:@anotherdecoratorf=lambdax:x*2我明白了:File"我觉得这可能是通过允许将语句“注入(inject)”到其中来使lambda更加通用

coding-style - 装饰器中的 Python 命名约定

Python装饰器的内部是否有任何“公认的”命名约定?styleguide没提,thisawesomeentryaboutdecorators对于返回的最终函数使用“包装”的变体非常一致,但是在创建带参数的装饰器时使用的名称呢?defdecorator_name(whatevs):definner(function):defwrapped(*args,**kwargs):#sweetdecoratorgoodnessreturnwrappedreturninner具体来说,上例中inner、function、wrapped的约定是什么? 最佳答案

coding-style - 装饰器中的 Python 命名约定

Python装饰器的内部是否有任何“公认的”命名约定?styleguide没提,thisawesomeentryaboutdecorators对于返回的最终函数使用“包装”的变体非常一致,但是在创建带参数的装饰器时使用的名称呢?defdecorator_name(whatevs):definner(function):defwrapped(*args,**kwargs):#sweetdecoratorgoodnessreturnwrappedreturninner具体来说,上例中inner、function、wrapped的约定是什么? 最佳答案

python - 装修装饰师 : try to get my head around understanding it

我正在尝试了解如何装饰装饰器,并想尝试以下方法:假设我有两个装饰器并将它们应用到函数hello():defwrap(f):defwrapper():return"".join(f())returnwrapperdefupper(f):defuppercase(*args,**kargs):a,b=f(*args,**kargs)returna.upper(),b.upper()returnuppercase@wrap@upperdefhello():return"hello","world"print(hello())然后我必须开始为其他功能添加其他装饰器,但通常@wrap装饰器会“包

python - 装修装饰师 : try to get my head around understanding it

我正在尝试了解如何装饰装饰器,并想尝试以下方法:假设我有两个装饰器并将它们应用到函数hello():defwrap(f):defwrapper():return"".join(f())returnwrapperdefupper(f):defuppercase(*args,**kargs):a,b=f(*args,**kargs)returna.upper(),b.upper()returnuppercase@wrap@upperdefhello():return"hello","world"print(hello())然后我必须开始为其他功能添加其他装饰器,但通常@wrap装饰器会“包

c# - c#中的函数装饰器

是否有Python的函数装饰器的C#类比?感觉它对属性和反射框架是可行的,但我没有看到在运行时替换函数的方法。Pythondecorators通常以这种方式工作:classdecorator(obj):def__init__(self,f):self.f=fdef__call__(self,*args,**kwargs):print"Before"self.f()print"After"@decoratordeffunc1():print"Function1"@decoratordeffunc2():print"Function2"调用func1和func2会导致BeforeFunct

c# - c#中的函数装饰器

是否有Python的函数装饰器的C#类比?感觉它对属性和反射框架是可行的,但我没有看到在运行时替换函数的方法。Pythondecorators通常以这种方式工作:classdecorator(obj):def__init__(self,f):self.f=fdef__call__(self,*args,**kwargs):print"Before"self.f()print"After"@decoratordeffunc1():print"Function1"@decoratordeffunc2():print"Function2"调用func1和func2会导致BeforeFunct

python - 对象的工厂方法 - 最佳实践?

这是一个关于使用python从相同数据的不同形式创建类或类型的实例的最佳实践的问题。使用类方法更好还是完全使用单独的函数更好?假设我有一个用于描述文档大小的类。(注意:这只是一个示例。我想知道创建类实例的最佳方式不是描述文档大小的最佳方式。)classSize(object):"""Utilityobjectusedtodescribethesizeofadocument."""BYTE=8KILO=1024def__init__(self,bits):self._bits=bits@propertydefbits(self):returnfloat(self._bits)@prope