我正在學習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'函數 –