062、Python 解决命名冲突的两种方式

如下,在一个包里的两个模块分别定义了一个名称一样的函数:

包结构与模块内容:

my_package/
    __init__.py
    module1.py
    module2.py

模块一代码:module1.py

def say_Hello():
    print("Hi!")

模块二代码:module2.py

def say_Hello():
    print("你好!")

如果我们要在另外一个模块里都要调用上面两个模块中的say_Hello()函数,我们该如何解决它们名称的冲突呢?有两个方式:

方式一:导入函数的时候对函数进行别名,如:

from my_package.module1 import say_Hello as f1
from my_package.module2 import say_Hello as f2

# 调用
f1()  # 输出 Hi!
f2()  # 输出 你好!

方式二:使用完全限定名(qualified name)—>[包名.]模块名.函数名,如:

from my_package.module1
from my_package.module2

# 调用
my_package.module1.say_Hello()  # 输出 Hi!
my_package.module1.say_Hello()  # 输出 你好!

from my_package import module1
from my_package import module2

# 调用
module1.say_Hello()  # 输出 Hi!
module1.say_Hello()  # 输出 你好!

相关推荐

  1. 062Python 解决命名冲突方式

    2024-06-19 03:10:03       6 阅读
  2. 前端解析URL方式

    2024-06-19 03:10:03       14 阅读
  3. C++ 实现Python 列表list 方法

    2024-06-19 03:10:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-19 03:10:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-19 03:10:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-19 03:10:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-19 03:10:03       20 阅读

热门阅读

  1. Ribbon与Nginx的区别

    2024-06-19 03:10:03       8 阅读
  2. QT day04

    QT day04

    2024-06-19 03:10:03      6 阅读
  3. Blender下使用python设置骨骼旋转

    2024-06-19 03:10:03       8 阅读
  4. ArcGIS Pro SDK (五)内容 1 地图工程

    2024-06-19 03:10:03       5 阅读
  5. 微信小程序,分享和反馈功能

    2024-06-19 03:10:03       9 阅读
  6. 代码随想录刷题经历

    2024-06-19 03:10:03       5 阅读
  7. 基于估计的无约束预测控制

    2024-06-19 03:10:03       6 阅读
  8. MMDetection3D学习笔记一:环境搭建

    2024-06-19 03:10:03       4 阅读
  9. 优化 Flutter 应用开发:探索 ViewModel 的威力

    2024-06-19 03:10:03       6 阅读
  10. OpenAI 开源的语音技术 Whisper 真棒!!!

    2024-06-19 03:10:03       7 阅读
  11. SQL入门教程

    2024-06-19 03:10:03       7 阅读
  12. ReentrantLock可重入锁

    2024-06-19 03:10:03       6 阅读
  13. 十个案例让你彻底明白究竟什么是PyTorch

    2024-06-19 03:10:03       5 阅读