小编no *_*nek的帖子

为什么子类化会改变 __init__ 签名?

>>> map(int, ["1", "2"], kw=True)
TypeError: map() takes no keyword arguments
Run Code Online (Sandbox Code Playgroud)

但是当子类化时

>>> class Map(map):
...     pass
...
>>> Map(int, ["1", "2"], whydoesthiswork=True)
<__main__.Map at 0x10fe48700>
Run Code Online (Sandbox Code Playgroud)

为什么现在接受关键字参数?它不应该只是__init__从父母那里继承吗?

python

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

数组的三个参数 pow

pow接受模数的第三个参数,pow(x, y, z)该参数比 更有效的计算x ** y % z。你怎么能用数组做到这一点?我试过的:

>>> import numpy as np
>>> A = np.array(range(10))
>>> pow(A, 23, 13)
TypeError: unsupported operand type(s) for pow(): 'numpy.ndarray', 'int', 'int'
Run Code Online (Sandbox Code Playgroud)

虽然 ndarray 实现了__pow__,直接调用不会做任何事情:

>>> A.__pow__(23, 13)
NotImplemented
Run Code Online (Sandbox Code Playgroud)

在两步中使用求幂和取模会产生不正确的结果(猜测它正在溢出 dtype)

>>> print(*(A ** 23 % 13))  # wrong result!
0 1 7 9 10 8 11 12 0 6
>>> print(*[pow(int(a), 23, 13) for a in A])  # correct result
0 1 7 9 …
Run Code Online (Sandbox Code Playgroud)

python math numpy pow modular-arithmetic

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

Python pathlib 匹配功能不起作用

pathlibmatch(pattern)被记录为将路径与提供的 glob 样式模式匹配,但它不起作用

>>> Path("w/x/y/z").mkdir(parents=True)
>>> list(Path().glob("w/**/z"))
[PosixPath('w/x/y/z')]
>>> Path("w/x/y/z").match("w/**/z")
False
Run Code Online (Sandbox Code Playgroud)

那不应该返回 true 吗?

python glob pathlib

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

标签 统计

python ×3

glob ×1

math ×1

modular-arithmetic ×1

numpy ×1

pathlib ×1

pow ×1