相关疑难解决方法(0)

动态导入Python模块

我有一个可信的远程服务器,存储许多自定义Python模块.我可以通过HTTP(例如使用urllib2.urlopen)作为text/plain 获取它们,但是我无法将获取的模块代码保存到本地硬盘.如何将代码作为完全可操作的Python模块导入,包括其全局变量和导入?
我想我必须使用某些组合execimp模块的功能,但我还是无法让它工作.

python dynamic-import

27
推荐指数
2
解决办法
7525
查看次数

如何在没有明确接受的情况下将自己变成Python方法

我正在开发一个文档测试框架 - 基本上是PDF的单元测试.测试是框架定义的类实例的(修饰)方法,它们在运行时定位和实例化,并调用方法来执行测试.

我的目标是减少编写测试的人需要关注的古怪Python语法的数量,因为这些人可能是也可能不是Python程序员,甚至根本不是程序员.所以我希望他们能够为方法编写"def foo():"而不是"def foo(self):",但仍然可以使用"self"来访问成员.

在一个普通的程序中,我会认为这是一个可怕的想法,但在像这样的特定于域的语言类程序中,似乎值得一试.

我已经通过使用装饰器成功地从方法签名中消除了自我(实际上,因为我已经为测试用例使用了装饰器,我只是将其滚动到那个),但是"self"不会引用任何内容.测试用例方法.

我已经考虑过使用global for self,甚至提出了一个或多或少有效的实现,但我宁愿污染最小的命名空间,这就是为什么我更愿意将变量直接注入test case方法的本地命名空间.有什么想法吗?

python variables local self

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

python中的函数声明有一个可读和干净的代码?

是否可以在python中声明函数并在以后或在单独的文件中定义它们?

我有一些代码:

class tata:
   def method1(self):
      def func1():
         #  This local function will be only used in method1, so there is no use to
         # define it outside.
         #  Some code for func1.
      # Some code for method1.
Run Code Online (Sandbox Code Playgroud)

问题是代码变得混乱且难以阅读.所以我想知道是否有可能在func1内部声明method1并在以后定义它?

python syntax declaration

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

python,装饰和封闭混淆

我有一些测试代码:

def num(num):
    def deco(func):
        def wrap(*args, **kwargs):
            inputed_num = num
            return func(*args, **kwargs)
        return wrap
    return deco


@num(5)
def test(a):
    return a + inputed_num

print test(1)

运行此代码时,我得到一个错误,表明未定义 'inputed_num'

我的问题是:在wrap函数中,是不是func可以得到'inputed_num'的闭包?

无论如何,如果没有,我该如何实现我的目标: 初始化一些值,并在main函数中直接使用该值.

想.

python closures decorator

4
推荐指数
2
解决办法
737
查看次数