相关疑难解决方法(0)

是否有像Python导出的东西?

我们一直使用python的导入机制来导入模块和变量以及其他东西.但是,有什么可以作为导出工作吗?喜欢:

我们从一个模块导入东西:

from abc import *
Run Code Online (Sandbox Code Playgroud)

那么我们可以出口吗?:

to xyz export *
Run Code Online (Sandbox Code Playgroud)

或者将a,b,c导出到program.py

我知道这个问题不是这里要问的典型问题..但只是好奇心..我检查了python控制台,并没有任何存在的'导出'..也许它存在一些不同的名称. .?

python python-module

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

Python - 猴子补丁失败,为什么?

我想f(*args, **kwargs)从已安装的模块中进行猴子修补。我在自己的代码中使用了装饰器的想法,但是已安装模块中的其他方法无法f正确调用。

这是一个例子:

import numpy as np

def log(func):
    def wrapper(*args, **kwargs):
        print('logging')
        return func(*args, **kwargs)
    return wrapper

if __name__ == "__main__":
    a1 = np.asarray([0, 1, 2])
    print(f'a1={a1}')

    a2 = np.array([0, 1, 2])
    print(f'a2={a2}')

    np.array = log(np.array)

    a3 = np.asarray([0, 1, 2])
    print(f'a3={a3}')

    a4 = np.array([0, 1, 2])
    print(f'a4={a4}')
Run Code Online (Sandbox Code Playgroud)

输出是:

a1=[0 1 2]
a2=[0 1 2]
a3=[0 1 2]
logging
a4=[0 1 2]
Run Code Online (Sandbox Code Playgroud)

我希望结果是:

a1=[0 1 2]
a2=[0 1 2]
logging
a3=[0 1 2]
logging
a4=[0 …
Run Code Online (Sandbox Code Playgroud)

monkeypatching metaprogramming python-import python-3.x python-internals

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