是否可以在Python中创建匿名对象?

发布于 2021-01-29 17:19:23

我正在调试一些Python,该Python需要一个对象列表作为输入,每个对象都有一些属性。

我想对一些测试值进行硬编码-假设有四个对象的列表,这些对象的“ foo”属性设置为某个数字。

有没有比这更简洁的方法?

x1.foo = 1
x2.foo = 2
x3.foo = 3
x4.foo = 4
myfunc([x1, x2, x3, x4])

理想情况下,我只想说些类似的话:

myfunc([<foo=1>, <foo=2>, <foo=3>, <foo=4>])

(显然,这是虚构的语法。但是有没有类似的东西真正起作用?)

注意:这将永远不会被检入。这只是一些一次性调试代码。因此,不必担心可读性或可维护性。

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我喜欢Tetha的解决方案,但它不必要地复杂。

    这里简单一些:

    >>> class MicroMock(object):
    ...     def __init__(self, **kwargs):
    ...         self.__dict__.update(kwargs)
    ...
    >>> def print_foo(x):
    ...     print x.foo
    ...
    >>> print_foo(MicroMock(foo=3))
    3
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看