是否最好返回一个匿名类或一个对象来作为一个'struct'? [英] Is it preferable to return an anonymous class or an object to use as a 'struct'?

查看:101
本文介绍了是否最好返回一个匿名类或一个对象来作为一个'struct'?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑到内存使用,时钟周期或良好的pythonic风格是最好的做法:

Considering memory use, clock cycles or good pythonic style is it better to do this:

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

或此

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

还有别的?我不想返回一个字典,因为我不喜欢使用方括号。

Or something else? I don't want to return a dictionary because I don't like having to use the square brackets.

推荐答案

使用制作 dict 子类的特殊方式,我找到了这里。它看起来像

I like to use a special way of crafting a dict subclass which I found here. It looks like

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

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

The different types of access can be used in a exchangeable way.

这篇关于是否最好返回一个匿名类或一个对象来作为一个'struct'?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆