在python中导入模块时如何避免一直写出模块的名称?

sna*_*ile 5 python import module

math最近经常使用这个模块.我不想写math.sqrt(x)math.sin(x)所有的时间.我想缩短它并写sqrt(x)sin(x).怎么样?

nik*_*kow 6

对于更长的模块名称,通常会缩短它们,例如

import numpy as np
Run Code Online (Sandbox Code Playgroud)

然后你可以使用短名称.或者你可以导入你需要的特定东西,如其他的anwsers所示:

from math import sin, sqrt
Run Code Online (Sandbox Code Playgroud)

这通常用在包内,用于更紧密耦合的代码.对于图书馆而言,名称缩短的第一个选项通常是首选方式.

永远不应该做的是使用from math import *表格.它会污染名称空间,可能导致名称冲突并使调试更加困难.最重要的是,它使代码难以阅读,因为不清楚特定功能的来源.

可以在交互式解释器中进行异常.但是,一旦你习惯使用缩短的名字,就可能不值得去那里使用另一个约定.


Mar*_*ers 5

你可以像这样导入:

>>> from math import sqrt, sin
>>> sqrt(100)
10.0
Run Code Online (Sandbox Code Playgroud)

来自:更多关于模块

import语句的变体将模块中的名称直接导入导入模块的符号表.例如:

>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
Run Code Online (Sandbox Code Playgroud)

甚至还有一个变体来导入模块定义的所有名称,这些名称在交互式解释器中非常有用:

>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
Run Code Online (Sandbox Code Playgroud)

请注意,一般来说,从模块或包导入*的做法是不受欢迎的,因为它经常会导致代码难以理解.但是,可以使用它来保存交互式会话中的输入.


Dom*_*ger 5

from math import sin, sqrt
# Then you can just do
sqrt(4)
Run Code Online (Sandbox Code Playgroud)