我正在学习Python,现在我正在学习Python中的导入语句。我正在测试一些代码,并且遇到了一些不寻常的事情。这是我正在测试的代码。对于不同的模块,导入语句的工作方式不同吗?
from math import pow as power
import random as x
print(pow(2, 3))
print(power(2, 3))
print(x.randint(0, 5))
print(random.randint(0, 5))
我了解到,在Python中,你可以重新使用as
模块的名称,所以我重新分配POW电源。我预计pow(2, 3)
和power(2, 3)
输出完全相同的东西,因为我所做的只是更改名称。但是,pow(2, 3)
输出8
,这是一个整数,而power(2, 3)
输出8.0
,这是一个浮点数。这是为什么?
此外,我还导入了random
模块,并将其名称设置为x
。在pow和power的情况下,旧名称pow
和新名称power
都起作用。但是对于这个随机模块,只有新名称x
有效,旧名称random
不起作用。 print(x.randint(0, 5))
工程,但random.randint(0, 5)
不起作用。这是为什么?
任何人都可以请一个像Python这样的新手解释为什么我的代码不按照我期望的方式工作吗?如果有帮助,我正在使用Python版本3.62。
因为'pow'使用内建的'pow'函数。当你使用'as'时,它会将该函数绑定到该名称。它不会导入'math.pow'并将其绑定到名称'pow',它只会导入'math.pow',然后将它绑定到不同的名称,例如'power'。 – Li357
你的期望是错误的,当你使用as作为另一个名字加载模块/函数/类时。所以'随机'不会工作。 'pow'的原因是,因为python有一个内置的'pow'函数 –