相关疑难解决方法(0)

__slots__的用法?

__slots__Python中的目的是什么- 特别是关于我何时想要使用它,何时不想使用它?

python oop slots python-internals

697
推荐指数
10
解决办法
18万
查看次数

像属性一样访问dict键?

我发现访问dict密钥更加方便,obj.foo而不是obj['foo'],所以我写了这个代码片段:

class AttributeDict(dict):
    def __getattr__(self, attr):
        return self[attr]
    def __setattr__(self, attr, value):
        self[attr] = value
Run Code Online (Sandbox Code Playgroud)

但是,我认为必须有一些原因,Python不提供开箱即用的功能.以这种方式访问​​dict密钥有什么警告和陷阱?

python syntax dictionary

273
推荐指数
16
解决办法
16万
查看次数

如何定义像C中的结构

我将定义一个结构并将其传递给一个函数:

在C:

struct stru {
int a;
int b;
};

s = new stru()
s->a = 10;

func_a(s);
Run Code Online (Sandbox Code Playgroud)

如何在Python中完成此操作?

python

20
推荐指数
3
解决办法
7万
查看次数

python中的struct对象

我想创建一个一次性"struct"对象来保存各种状态标志.我的第一个方法就是这个(javascript风格)

>>> status = object()
>>> status.foo = 3  
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'foo'
Run Code Online (Sandbox Code Playgroud)

绝对不是我的预期,因为这有效:

>>> class Anon: pass
... 
>>> b=Anon()
>>> b.foo = 4
Run Code Online (Sandbox Code Playgroud)

我想这是因为object()没有__dict__.我不想使用字典,假设我不想创建Anon对象,还有其他解决方案吗?

python

11
推荐指数
4
解决办法
2万
查看次数

C++结构本身?

我一直在尝试将这段代码移植到python中,但是我在C++中有一些我不太了解的东西(我确实知道一些C++,但这超出了我的范围):

typedef struct huffnode_s
{
    struct huffnode_s *zero;
    struct huffnode_s *one;
    unsigned char val;
    float freq;
} huffnode_t;
Run Code Online (Sandbox Code Playgroud)

我没有得到的是huffnode_s本身是如何形成的,我以前从未见过它并且不太了解它.这是什么意思,如果有人可以,那python等同于什么?

c c++ python huffman-code

8
推荐指数
3
解决办法
888
查看次数

C struct python等价

我有这个C代码:

    typedef struct test * Test;

    struct test {
        void *a;
        Test next;
    };
Run Code Online (Sandbox Code Playgroud)

你将如何在Python中实现与此相当的东西(如果可能的话)?

c python

4
推荐指数
1
解决办法
2万
查看次数

手动将命令传递到 argparse 中?| Python 2.7

我正在使用 Python 精彩的 Cmd 库制作一个终端游戏。但我很好奇是否可以以某种方式将 argparse 代码放入其中。就像使用 argparse 处理我的 cmd.Cmd() 类中的“args”一样。为此,我真的希望 argparse 有一种方法可以手动将 args 传递给它。我浏览了文档,但没有注意到类似的内容。

cmd python-2.7 argparse

4
推荐指数
1
解决办法
3421
查看次数

Python 中的(命名)元组字典和速度/RAM 性能

我正在创建一个d包含一百万个元组项目的字典,理想情况下我想通过以下方式访问它们:

d[1634].id       # or  d[1634]['id']
d[1634].name     # or  d[1634]['name']
d[1634].isvalid  # or  d[1634]['isvalid']
Run Code Online (Sandbox Code Playgroud)

而不是d[1634][0], d[1634][1]d[1634][2]后者不太明确。

根据我的测试:

import os, psutil, time, collections, typing
Tri = collections.namedtuple('Tri', 'id,name,isvalid')
Tri2 = typing.NamedTuple("Tri2", [('id', int), ('name', str), ('isvalid', bool)])
t0 = time.time()
# uncomment only one of these 4 next lines:
d = {i: (i+1, 'hello', True) for i in range(1000000)}                                 # tuple
# d = {i: {'id': i+1, 'name': 'hello', 'isvalid': True} for i in range(1000000)} …
Run Code Online (Sandbox Code Playgroud)

python dictionary tuples namedtuple

3
推荐指数
1
解决办法
1411
查看次数

Python有介于dict和namedtuple之间的数据结构吗?

我正在寻找固定键,例如 a namedtuple,但可变值,例如 a dict。我可能会struct在C中使用a。Python中有这样的数据结构吗?

python

0
推荐指数
1
解决办法
512
查看次数