小编Mat*_*ner的帖子

在Python中有"做......直到"吗?

可能重复:
在Python中模拟do-while循环?

有没有

do until x:
    ...
Run Code Online (Sandbox Code Playgroud)

在Python中,还是实现这种循环结构的好方法?

python loops

131
推荐指数
4
解决办法
32万
查看次数

如何在当前模块上调用setattr()?

我作为第一个参数" object"传递给函数setattr(object, name, value),在当前模块上设置变量?

例如:

setattr(object, "SOME_CONSTANT", 42);
Run Code Online (Sandbox Code Playgroud)

产生同样的效果:

SOME_CONSTANT = 42
Run Code Online (Sandbox Code Playgroud)

在包含这些行的模块中(正确object).

我在模块级别动态生成多个值,而我无法__getattr__在模块级别定义,这是我的后备.

python module global-variables setattr getattr

128
推荐指数
3
解决办法
4万
查看次数

模块上的__getattr__

如何__getattr__在模块上实现类的等价?

当调用模块静态定义的属性中不存在的函数时,我希望在该模块中创建一个类的实例,并在模块上的属性查找中使用与失败相同的名称调用其上的方法.

class A(object):
    def salutation(self, accusative):
        print "hello", accusative

# note this function is intentionally on the module, and not the class above
def __getattr__(mod, name):
    return getattr(A(), name)

if __name__ == "__main__":
    # i hope here to have my __getattr__ function above invoked, since
    # salutation does not exist in the current namespace
    salutation("world")
Run Code Online (Sandbox Code Playgroud)

这使:

matt@stanley:~/Desktop$ python getattrmod.py 
Traceback (most recent call last):
  File "getattrmod.py", line 9, in <module>
    salutation("world")
NameError: name 'salutation' is not …
Run Code Online (Sandbox Code Playgroud)

python module attributeerror getattr python-3.x

114
推荐指数
7
解决办法
4万
查看次数

C中的静态断言

在C(而不是C++)中实现编译时静态断言的最佳方法是什么,特别强调GCC?

c gcc assert static-assert compile-time

79
推荐指数
4
解决办法
6万
查看次数

在switch语句中使用continue

我想从switch语句的中间跳转到以下代码中的循环语句:

while (something = get_something())
{
    switch (something)
    {
    case A:
    case B:
        break;
    default:
        // get another something and try again
        continue;
    }
    // do something for a handled something
    do_something();
}
Run Code Online (Sandbox Code Playgroud)

这是一种有效的使用方式continue吗?continue语句是否忽略了switch语句?C和C++在这方面的行为有何不同?

c c++ continue break switch-statement

74
推荐指数
5
解决办法
9万
查看次数

无法使用"#!/ usr/bin/env python"将参数传递给python

我需要一个可直接执行的python脚本,所以我用它启动了该文件#!/usr/bin/env python.但是,我也需要无缓冲输出,所以我试过#!/usr/bin/env python -u,但是失败了python -u: no such file or directory.

我发现#/usr/bin/python -u的作品,但我需要它来获得pythonPATH支持虚拟env环境.

我有什么选择?

python arguments shebang

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

Ctrl + C和Ctrl + [?有什么区别?

Ctrl+ CCtrl+有[什么区别?这些文件包含以下内容:

<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode.  Finish
                abbreviation.           
                Note: If your <Esc> key is hard to hit on your keyboard, train
                yourself to use CTRL-[.
CTRL-C          Quit insert mode, go back to Normal mode.  Do not check for
                abbreviations.  Does not trigger the |InsertLeave| autocommand
                event.
CTRL-C                  Interrupt current (search) command.  Use CTRL-Break on
                        MS-DOS |dos-CTRL-Break|.
                        In Normal mode, any pending command is aborted.

似乎对命令的作用存在一些分歧. …

vim key

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

Python中的sscanf

我正在寻找与sscanf()Python 相当的东西.我想解析/proc/net/*文件,在CI中可以做这样的事情:

int matches = sscanf(
        buffer,
        "%*d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %*X %*X:%*X %*X:%*X %*X %*d %*d %ld %*512s\n",
        local_addr, &local_port, rem_addr, &rem_port, &inode);
Run Code Online (Sandbox Code Playgroud)

我首先想到的是str.split,但是它不会拆分给定的字符,而是整个sep字符串:

>>> lines = open("/proc/net/dev").readlines()
>>> for l in lines[2:]:
>>>     cols = l.split(string.whitespace + ":")
>>>     print len(cols)
1
Run Code Online (Sandbox Code Playgroud)

如上所述,应该返回17.

是否有一个等价于sscanf(不是RE)的Python ,或者标准库中的字符串拆分函数,它分裂了我不知道的任何一系列字符?

python parsing split scanf procfs

59
推荐指数
5
解决办法
11万
查看次数

什么时候在Go中使用[]字节或字符串?

经常写Go应用程序,我发现自己可以选择使用[]bytestring.除了明显的可变性之外[]byte,我该如何决定使用哪一个?

我举例说明了几个用例:

  1. 函数返回一个新函数[]byte.由于切片容量是固定的,有什么理由不返回字符串?
  2. []byte不像string默认情况下打印得那么好,所以我经常发现自己正在string为了记录目的而进行投射.应该一直是string吗?
  3. 在预先添加时[]byte,始终会创建一个新的基础数组.如果前置数据是不变的,为什么这不是一个string

string bytearray go

55
推荐指数
3
解决办法
9595
查看次数

ptrdiff_t在C中定义在哪里?

哪里是ptrdiff_t在C中规定?如果不重要,我怎样才能在Linux上从GCC看到这种类型?

c types libc stdint

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