面试题答案
一键面试import module_name
- 差异:导入整个模块,通过模块名来访问模块中的函数、变量等。
- 优点:
- 明确知道访问的函数或变量来自哪个模块,代码可读性好,便于维护。
- 避免命名冲突,不同模块中同名的函数或变量不会相互干扰。
- 缺点:
- 如果要频繁使用模块中的成员,每次都要写模块名,代码相对冗长。
from module_name import function_name
- 差异:从指定模块中导入特定的函数或变量,直接使用函数名或变量名,无需通过模块名访问。
- 优点:
- 代码简洁,使用导入的函数或变量时无需重复写模块名。
- 提高代码执行效率,因为在调用时无需通过模块名进行查找。
- 缺点:
- 可能导致命名冲突,如果不同模块中有相同名称的函数或变量,容易混淆。
- 代码可读性稍差,难以直观判断函数或变量的来源。
from module_name import *
- 差异:导入模块中的所有公共对象(函数、变量等),直接使用这些对象,无需通过模块名访问。
- 优点:
- 代码书写极为简洁,在使用模块中的多个对象时无需逐个导入。
- 缺点:
- 严重的命名冲突风险,容易与当前命名空间中的其他名称冲突,且很难追踪冲突来源。
- 可读性差,无法直观知道这些对象来自哪个模块,不利于代码维护和理解。同时也会污染全局命名空间。