python如何调用从未在代码中定义的类?

2024-05-23 23:34:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道是否可以在这里粘贴所有代码,但我正在查看this git repo中的代码。在

如果你看看这个例子:

ec2 = EC2('access key id', 'secret key')

…但是没有EC2类。然而,看起来在libcloud\providers.py中有一个dict,它将EC2映射到libcloud\drivers\ec2.py中的EC2NodeDriver。正确的映射由get_driver(provider)计算,但该方法似乎在任何地方都不会被调用。在

显然,我对python还不熟悉,但对编程不是很熟悉。我甚至不知道我应该在文件里查些什么来解决这个问题。在


Tags: key代码pygitidsecretaccess粘贴
2条回答

查看libcloud\示例.py可能会有帮助。我看到了这个:

from libcloud.drivers import EC2, Slicehost, Rackspace

python“import”语句从其他python模块引入类,在本例中是从libcloud.drivers文件模块。在

example.py包含一个import语句,其内容如下:

from libcloud.drivers import EC2, Slicehost, Rackspace

这意味着EC2类是从libcloud.drivers模块导入的。然而,在本例中,libcloud.drivers实际上是一个(Python包含模块),这意味着EC2应该在libcloud/drivers/中的文件__init__.py中定义,但事实并非如此。这意味着在这个特定的例子中,他们的示例代码实际上是错误的。(我下载了代码,在运行example.py时出现导入错误,正如您所见,文件libcloud/drivers/__init__.py根本不包含任何定义,至少是EC2定义。)

相关问题 更多 >