Python 中的类 C 结构 [英] C-like structures in Python

查看:66
本文介绍了Python 中的类 C 结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法在 Python 中方便地定义类 C 的结构?我厌倦了写这样的东西:

class MyStruct():def __init__(self, field1, field2, field3):self.field1 = field1self.field2 = field2self.field3 = field3

解决方案

使用 命名元组,已添加到标准中的集合模块Python 2.6 中的库.如果您需要支持 Python 2.4,也可以使用 Raymond Hettinger 的 named tuple 配方.>

这对您的基本示例很好,但也涵盖了您以后可能会遇到的一堆边缘情况.您上面的片段将写为:

from collections import namedtupleMyStruct = namedtuple("MyStruct", "field1 field2 field3")

新创建的类型可以这样使用:

m = MyStruct("foo", "bar", "baz")

您也可以使用命名参数:

m = MyStruct(field1="foo", field2="bar", field3="baz")

Is there a way to conveniently define a C-like structure in Python? I'm tired of writing stuff like:

class MyStruct():
    def __init__(self, field1, field2, field3):
        self.field1 = field1
        self.field2 = field2
        self.field3 = field3

解决方案

Use a named tuple, which was added to the collections module in the standard library in Python 2.6. It's also possible to use Raymond Hettinger's named tuple recipe if you need to support Python 2.4.

It's nice for your basic example, but also covers a bunch of edge cases you might run into later as well. Your fragment above would be written as:

from collections import namedtuple
MyStruct = namedtuple("MyStruct", "field1 field2 field3")

The newly created type can be used like this:

m = MyStruct("foo", "bar", "baz")

You can also use named arguments:

m = MyStruct(field1="foo", field2="bar", field3="baz")

这篇关于Python 中的类 C 结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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