我使用的是python 3.5:
我的一些python函数中有一个重复模式。对于大量的类集合,前两行是:
obj_a = <..... obtain something I need.....>
obj_b = <..... obtain another thing I need....>
我在这里简化它,但是获得obj_a
和obj_b
的过程不是一个线性过程。。。我希望避免以比util函数更优雅的方式在任何地方重复此代码以获得obj_a
和obj_b
(例如obj_a = getObjectA()
…)
有没有什么方法可以把这些行作为函数的装饰器的一部分,比如:
@function_where_I_need_my_objects
def foo:
<....do something with obj_a and obj_b already initialized....>
obj_a
和obj_b
听起来很像状态。你知道吗也可以定义一个decorator来返回
obj_a
和obj_b
附近的闭包。你知道吗然而,简单地编写一个函数,返回两个对象,并让调用者使用他们喜欢的任何名称,这几乎不再是一个更灵活的方法了:
您可以像下面这样创建变量,当函数被调用时,这些变量将有效地成为函数的局部变量。这将使用
eval()
,如果在不受信任的输入上使用,这可能是不安全的,但在这里,它不是用来执行修饰函数的编译字节码的情况(而是caveat emptor)。你知道吗输出:
可以将这两个对象放在基类中,如下所示:
并在所需类的函数中继承:
相关问题 更多 >
编程相关推荐