小编por*_*uod的帖子

Python类的__dict __.__ dict__属性是什么?

>>> class A(object): pass
... 
>>> A.__dict__
<dictproxy object at 0x173ef30>
>>> A.__dict__.__dict__
Traceback (most recent call last):
  File "<string>", line 1, in <fragment>
AttributeError: 'dictproxy' object has no attribute '__dict__'
>>> A.__dict__.copy()
{'__dict__': <attribute '__dict__' of 'A' objects> ... }
>>> A.__dict__['__dict__']
<attribute '__dict__' of 'A' objects> # What is this object?
Run Code Online (Sandbox Code Playgroud)

如果我这样做A.something = 10,这就进入了A.__dict__.什么这个<attribute '__dict__' of 'A' objects>发现A.__dict__.__dict__,当它包含的东西吗?

python metaprogramming class magic-methods

81
推荐指数
4
解决办法
8万
查看次数

在什么情况下__rmul__被称为?

说我有一个清单l.在什么情况下被l.__rmul__(self, other)称为?

我基本上理解了文档,但我也希望看到一个例子,毫无疑问地澄清它的用法.

python operators

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

ac/c ++编译器是否将两次幂值的常量除法优化为移位?

问题说明了一切.有谁知道以下......

size_t div(size_t value) {
    const size_t x = 64;
    return value / x;
}
Run Code Online (Sandbox Code Playgroud)

...优化成?

size_t div(size_t value) {
    return value >> 6;
}
Run Code Online (Sandbox Code Playgroud)

编译器会这样做吗?(我的兴趣在于GCC).是否有这样的情况,有些情况不是吗?

我真的很想知道,因为每当我写一个可以像这样优化的师时,我会花费一些心理能量,想知道一秒钟的宝贵事迹是否会浪费在一个转变就足够的分裂上.

c c++ optimization gcc

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

学习阅读GCC汇编程序输出

我正在考虑对装配有一些非常基本的了解.我目前的目标很简单:在使用-S开关为x86/x86-64编译C/C++时,对GCC汇编器输出有非常基本的了解.

足以做一些简单的事情,例如查看单个函数并验证GCC是否优化了我希望消失的东西.

有没有人知道一个真正简洁的汇编介绍,与GCC相关,特别是为了阅读的目的,以及任何随便阅读汇编的人都应该知道的最重要的指令清单?

c c++ assembly gcc

37
推荐指数
2
解决办法
9242
查看次数

当前CPU的分支预测有多普遍?

由于对性能的巨大影响,我不知道我当前的桌面CPU是否有分支预测.当然可以.但各种ARM产品怎么样?iPhone或Android手机有分支预测吗?旧版的Nintendo DS?基于PowerPC的Wii怎么样?PS 3?

它们是否具有复杂的预测单元并不是那么重要,但是如果它们至少具有一些动态预测,以及它们是否在预期分支之后执行一些指令.

具有分支预测的CPU的截止点是多少?几十年前的手持计算器显然没有一个,而我的桌面确实没有.但是,任何人都能更清楚地概述可以预期动态分支预测的位置吗

如果不清楚,我说的是条件变化的预测类型,在运行时改变预期的路径.

arm cpu-architecture branch-prediction

26
推荐指数
3
解决办法
5387
查看次数

在Python中分配实例的__class__属性

在什么情况下可能,什么时候不可能,__class__在Python中分配实例的属性?

错误消息,例如TypeError: __class__ assignment: only for heap types不要真的为我做.

python metaprogramming

21
推荐指数
1
解决办法
3988
查看次数

面向分组的无损压缩库

有谁知道在C/C++中支持面向数据包压缩的免费(非GPL),性能良好的压缩库?

对于面向数据包,我的意思是QuickLZ(GPL)具有的功能,其中流的多个数据包可以单独压缩和解压缩,同时跨数据包维护历史记录以实现合理的压缩.

只要CPU使用率不是很荒谬,我就赞成压缩比而不是CPU使用率,但我很难找到这个功能,所以任何事情都有意义.

c c++ compression

19
推荐指数
2
解决办法
3517
查看次数

确定给定的Python模块是否是内置模块

我正在对各种模块进行一些解析和内省,但我不想解析内置模块.现在,内置模块没有特殊类型,就像有一个types.BuiltinFunctionType,所以我该怎么做?

>>> import CornedBeef
>>> CornedBeef
<module 'CornedBeef' from '/meatish/CornedBeef.pyc'>
>>> CornedBeef.__file__
'/meatish/CornedBeef.pyc'
>>> del CornedBeef.__file__
>>> CornedBeef
<module 'CornedBeef' (built-in)>
Run Code Online (Sandbox Code Playgroud)

根据Python,如果模块没有__file__属性,它显然是内置的.这是否意味着hasattr(SomeModule, '__file__')检查模块是否内置的方法是什么?当然,它并不常见del SomeModule.__file__,但有没有更坚实的方法来确定模块是否内置?

python module internals python-internals

18
推荐指数
2
解决办法
4335
查看次数

"非本地"指针是否会影响缓存性能?

据我所知,硬件预取器至少会检测并通过内存获取持续的步幅.此外,它可以监控数据访问模式,无论真正意味着什么.这让我想知道,硬件预取程序是否会根据存储在内存中的实际数据做出决定,还是纯粹基于程序所展示的行为?

我问的原因是因为我偶尔会使用"非本地"指针作为指针.一个简单的例子就是预分配的东西数组,以及索引这个数组而不是指针的小整数.如果我需要存储大量这样的"指针",内存的节省可以快速增加,并通过使用更少的内存间接提高缓存性能.

但据我所知,这可能会干扰硬件预取器的工作方式.或不!

我可以想象,现实与否,预取单元检查进入L1缓存的缓存行以获取本机指针地址并开始将它们提取到L2或某些此类事物中.在那种情况下,我拯救记忆的聪明伎俩突然变得不那么聪明了.

那么,现代硬件预取器的作用是什么呢?他们可以被"非本地"指针绊倒吗?

c c++ optimization prefetch cpu-cache

17
推荐指数
2
解决办法
608
查看次数

如何在Python中使类不可变

我正在做一些分布式计算,其中几台机器在假设它们都具有不同类的相同版本的情况下进行通信.因此,使这些类不可变是一种好的设计; 不是因为它必须挫败一个意图不好的用户,只是不可改变的,它永远不会被意外修改.

我该怎么做?例如,我如何实现一个元类,使得类在定义后使用它是不可变的?

>>> class A(object):
...     __metaclass__ = ImmutableMetaclass
>>> A.something = SomethingElse # Don't want this
>>> a = A()
>>> a.something = Whatever # obviously, this is still perfectly fine.
Run Code Online (Sandbox Code Playgroud)

替代方法也很好,例如一个装饰器/函数,它接受一个类并返回一个不可变的类.

python metaclass immutability

16
推荐指数
2
解决办法
9335
查看次数