Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
172 views
in Technique[技术] by (71.8m points)

python - Is it preferable to return an anonymous class or an object to use as a 'struct'?

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

or this

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

This object can be used this way:

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...