小编div*_*ero的帖子

如何重载Python的__bool__方法?

可能重复:
在python中定义类的"boolness"

我认为这应该打印"False",为什么打印"True"?

>>> class Foo(object):
...   def __bool__(self):
...     return False
... 
>>> f = Foo()
>>> if f:
...   print "True"
... else:
...   print "False"
... 
True
>>>
Run Code Online (Sandbox Code Playgroud)

python methods overloading magic-methods

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

页面错误是否导致错误进程重新安排?

在Linux中,当进程尝试访问没有当前物理映射(缺少页表条目)的页面时,会生成页面错误(由CPU).这会导致调用Linux的页面错误处理程序.如果此故障是"主要",意味着Linux必须从交换设备读取页面,则处理程序必须在这种情况下从实际磁盘读取.由于从磁盘读取是异步的(submit_bio),这是否会导致进程重新计划?(当I/O完成时唤醒?)

如果确实发生了重新安排,那么对"schedule()"的调用在哪里?读取mm/swap_state.c中的代码并不能告诉我何时(或如果)发生这种情况.

swap operating-system memory-management segmentation-fault linux-kernel

9
推荐指数
1
解决办法
1132
查看次数

给定一个python .pyc文件,是否有一个工具可以让我查看字节码?

CPython解释器会自动将Python模块编译为.pyc文件.包含字节码的.pyc文件是二进制格式(封送代码?).是否有GUI(或命令行)工具让我查看字节码?

python bytecode pyc

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

我可以在命令行中指定PyPI服务器信息,例如用户名和密码,而不是使用.pypirc吗?

我的.pypirc文件:

[distutils]
index-servers =
  pypi
  internal

[pypi]
username:pypiusername
password:pypipasswd

[internal]
repository: http://10.11.12.13:8080
username: ning
password: xxxx
Run Code Online (Sandbox Code Playgroud)

我想编写一个上传包但不想在运行它的机器上需要.pypirc文件的脚本.我可以指定存储库-r,但有没有办法指定username,password以及?或者是否有传递不同文件的选项(例如--config-file ./my-pypyrc)

python setuptools pypi

8
推荐指数
1
解决办法
678
查看次数

如何将修饰符添加到带引号的常规(qr)表达式中

有没有一种简单的方法可以将正则表达式修饰符(如"i")添加到引用的正则表达式中?例如:

$pat = qr/F(o+)B(a+)r/;
$newpat = $pat . 'i'; # This doesn't work
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法就是print "$pat\n"回过头来(?-xism:F(o+)B(a+)r)尝试?-xism:用替换去除'i'

regex perl modifier stringification qr-operator

6
推荐指数
1
解决办法
677
查看次数

如何判断Perl正则表达式模式中哪些替代项匹配?

我有一个正则表达式列表(大约10 - 15),我需要匹配一些文本.在循环中逐个匹配它们太慢了.但是我没有编写自己的状态机来同时匹配所有正则表达式,而是尝试|单独的正则表达式并让perl完成工作.问题是我怎么知道哪些替代品匹配?

这个问题解决了每个正则表达式中没有捕获组的情况.(哪个部分与正则表达式相匹配?)如果每个正则表达式中都有捕获组怎么办?

所以有以下几点,

/^(A(\d+))|(B(\d+))|(C(\d+))$/
Run Code Online (Sandbox Code Playgroud)

和字符串"A123",我怎么能知道A123匹配并提取"123"?

regex perl capture regex-group

3
推荐指数
2
解决办法
655
查看次数

Python:从嵌套迭代器中组合列表

我有一个元组列表,我需要通过添加两个元素来扩展它,每个元素来自一个列表.所以我有[(1, 2, 3)]两个迭代器it1 = (i for i in ['a1', 'a2'])it2 = (i for i in in ['b1', 'b2']).结果应该是[(1, 2, 3, 'a1', 'b1'), (1, 2, 3, 'a1', 'b2'), (1, 2, 3, 'a2', 'b1'), (1, 2, 3, 'a2', 'b2')].

如果我使用上面显示的迭代器它不起作用.但是,如果我使用列表它是有效的.这是代码:

def get_iters():
    return ((i for i in ['a1', 'a2']), (i for i in ['b1', 'b2']))

def get_lists():
    return ([i for i in ['a1', 'a2']], [i for i in ['b1', 'b2']])

def compose(lst_of_tuples, iter=True):
    iters …
Run Code Online (Sandbox Code Playgroud)

python iterator scope functional-programming function-composition

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

在Perl中,匹配的正则表达式中有多少组?

我想说一个数字1和字符串之间的区别'1'.

我想这样做的原因是因为我想确定成功匹配后正则表达式中捕获括号的数量.根据perlop doc,当模式中没有捕获组时,返回列表(1).因此,如果我得到一个成功的匹配和一个列表(1),那么我无法判断该模式是否没有parens或它有一个paren并且它匹配'1'.如果数字1和字符串之间存在差异,我可以解决这种歧义'1'.

regex perl types capturing-group

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