![]() |
1
54
你不能用模块来做,但是你可以把一个类伪装成“好像”它是一个模块,例如
现在任何人都可以
|
![]() |
2
12
我在python 3.3上使用了alex的实现,但这非常糟糕: 代码
不正确,因为
下面是我们现在在项目中使用的允许延迟导入的版本
在一个模块中。这个
Lazy module variables--can it be done?
模块现在需要定义 初始化 功能。此功能可以使用 要导入可能导入我们自己的模块,请执行以下操作:
代码可以放入另一个模块中,并且可以使用属性进行扩展。 如上例所示。 也许这对某人有用。 |
![]() |
3
4
事实证明,从Python3.7开始,可以通过定义
|
![]() |
4
3
在第一次访问模块变量时,是否有任何方法可以惰性地分配它,或者我必须依赖一个函数? 我认为你说函数是解决问题的最佳方法是正确的。 我给你举个简单的例子来说明。
如果导入是模块级的,则会在导入时执行昂贵的操作。没有一种方法可以阻止这种情况,除非延迟地导入整个模块!!
您将使用此方法遵循最佳实践。 |
![]() |
5
2
最近,我遇到了同样的问题,并找到了一种解决方法。
用这个
这个
完整的代码和测试(2.7中的工作)可以在这里找到: |
![]() |
6
0
如果该变量存在于类中而不是模块中,那么您可以重载getattr,或者更好地在in it中填充它。 |
![]() |
7
0
这个
适当的
根据python文档,这样做的方法是子类
|
![]() |
8
0
从python 3.7开始
PEP-562
,这在模块级是可能的。
在你的模块中,放置如下内容:
由此可以清楚地看到
结果只是: -- before import -- -- after import --
但是当你试图访问这个名字时
从
模块,模块级别
例如,在模块“somemodule.py”中使用上面的第一个块时,以下代码:
生产: -- Determining DOWNLOAD_FOLDER_PATH... /some/path/here -- /some/path/here -- 或者更清楚地说:
最后,您还可以实现
|
![]() |
livthomas · 如何在Angular应用程序中延迟加载库 7 年前 |
![]() |
Sameer · 为延迟加载的模块创建公共模块 7 年前 |
![]() |
Philip Feldmann · 帆。js延迟加载模型 7 年前 |
![]() |
Perp · 如何将Web包中的节点模块与异步块分离? 7 年前 |
![]() |
Bob Ramsey · 需要关于延迟加载mat手风琴内容的帮助 7 年前 |
![]() |
JSON · 如何将子组件设置为路由器出口的默认路由?[副本] 7 年前 |