python - 返回匿名类或对象用作 'struct' 更好吗?

标签 python class object

考虑到内存使用、时钟周期或良好的 Pythonic 风格,这样做更好吗:

def func():
    class A:
       x = 10
       y = 20
    return A

或者这个

def func():
    o = object()
    o.x = 10
    o.y = 20
    return o

还是别的?我不想返回字典,因为我不喜欢必须使用方括号。

最佳答案

我喜欢使用一种特殊的方式来制作我发现的 dict 子类 here .看起来像:

class Struct(dict):
    """Python Objects that act like Javascript Objects"""
    def __init__(self, *args, **kwargs):
        super(Struct, self).__init__(*args, **kwargs)
        self.__dict__ = self

这个对象可以这样使用:

o = Struct(x=10)
o.y = 20
o['z'] = 30
print o.x, o['y'], o.z

可以以可交换的方式使用不同类型的访问权限。

关于python - 返回匿名类或对象用作 'struct' 更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577900/

相关文章:

python - 从 python 运行另一个程序

python - 如何用 beautiful soup 从此页面提取轨道标题

c++ - 返回一个节点类

c++ - 如何在 C++ 中从另一个类的方法访问一个类的方法

c++ - 成员初始化列表错误的统一初始化

javascript - JavaScript 中的对象和函数

Python遍历对象属性

python - 使用 SCons 进行真正的分层构建?

python - 在 Django 中使用 API 调用创建新模型实例

javascript - 将对象转换为二维数组但删除键