当前位置: 首页 > news >正文

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()  # 输出 你好!

相关文章:

  • 游戏心理学Day18
  • Rocketmq的坑又来了
  • 全网最全 Kimi 使用手册,看完 Kimi 效率提升 80%
  • 持续总结中!2024年面试必问 20 道设计模式面试题(三)
  • 我用chatgpt写了一款程序
  • 算法训练营day51
  • git pull的使用方法
  • 程序性能优化——接口性能优化总结和思考
  • HTML 颜色名
  • 为什么选择Python作为AI开发语言
  • Anvil Empires/铁砧帝国操作没反应、频繁掉线怎么办?
  • Python第二语言(十二、SQL入门和实战)
  • PHP 命名空间
  • C++迈向精通:当我尝试修改虚函数表
  • 编程C语言自学书:引领你深入编程世界的神秘之旅
  • MDPO:Conditional Preference Optimization for Multimodal Large Language Models
  • 【STM32】GPIO简介
  • 基于文本挖掘的卡塔尔世界杯赛事网络舆情演变与趋势预测
  • Eigne库安装及使用教程
  • FastAdmin后台开发框架 lang 任意文件读取漏洞复现
  • 乘联分会:上半年车市价格竞争温和,下半年价格战或再开启
  • 印度证实印巴已同意停火
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战
  • 长期对组织隐瞒真实年龄,广元市城发集团原董事韩治成被双开
  • 国家出口管制工作协调机制办公室部署开展打击战略矿产走私出口专项行动
  • 紧盯大V、网红带货肉制品,整治制售假劣肉制品专项行动开展