用于契约和扩展oop的python装饰器。

Augment的Python项目详细描述


扩充
----

python decorators用于协定和扩充oop。
来自distutils.core导入设置



contracts。
``````````````

下面的语法应该是不言而喻的。它既可以应用于绑定方法,也可以应用于未绑定方法。

::

可以指定接收错误的错误处理程序。@确保参数(a=(lambda x:x>;10,'必须大于10'),
b=r'^?-\ d+(\.\d+$',
c=lambda x:x<;5)'c'将从'kwargs'中选取。
def foo(a,b,**kwargs):
pass

b):
pass

确保只有一个约束是真的。
@确保一个(exclusive=true,c=lambda x:x,d=lambda x:x)
def foo(a,b):
传递

运行。
@transform_args(a=lambda x:x*x)
@sure_one_of(c=lambda x:x,d=lambda x:x)
@sure_args(a=lambda x:x>;10,
b=lambda x:hasattr(x,“\uu getitem_uuuu”),
c=lambda x:x<;5)
def foo(a,b,c=4,d=无):
传递


“BR/>< BR/>:
DEF登录(root):
打印:“BR/> BR/> DEF注销(根):< BR/>打印“注销”< BR/> BR/>‘登录’将在进入“家”之前运行。
“注销”将在退出“家”后运行。
“根”PARAM传递到“HOLD”将被传递到“登录”,“登录”[BR/> @离开(注销)< BR/> DEFHOLD(根):
打印“主页”。
BR/> DEF TraceRe():打印“跟踪”< BR/> BR/>‘Trace'将在进入“家”之前运行,之后
退出“家”。“收件箱”

“登录”。

def logout(self):
打印“注销”


@离开(logout)
@输入(login)
def home(self,测试=无):
打印“主页”。

def tracer(self):
打印“跟踪”

@around(tracer)
def inbox(self):
打印“inbox”



自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我。自我35;这将导致属性错误。
打印b.c

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JUnit5中定义优先级   Web驱动程序将焦点切换到iframe的java困难   java JFileChooser没有文件名文本字段选项   本地化是否可以回退到Java中resourcebundle的宏语言(例如,nynorsk>norsk)   禁用时Java断言的性能拖动   未考虑执行中的java jsonschema2pojo maven插件配置   java微调器。setSelection未调用setOnItemSelectedListener函数   序列化XStream:序列化java的反序列化。sql。时间导致错误   java无法理解为什么“ajpnio8009execXX”线程在AbstractQueuedSynchronizer$ConditionObject上阻塞/等待时间。等候   Java date给我的格式是mm/dd/yyyy,其中jquery datepicker的日期格式是dd/mm/yyyy   jsf如何用javaweb应用程序在客户端重写csv文件   雅加达ee Java邮件Api,无法从outlook客户端读取“.msg附件”   java PreparedStatement性能调优