当前位置: 首页 > 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()  # 输出 你好!
http://www.dtcms.com/a/11178.html

相关文章:

  • 游戏心理学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 任意文件读取漏洞复现
  • ListModel 是 Qt Quick 中用于存储数据模型的元素,通常用于在视图组件(如 ListView、GridView)中显示数据
  • 2. 音视频H264
  • unity38——MemoryProfiler性能分析器,截帧分析当前性能占用率的具体文件
  • 基于EXCEL数据表格创建省份专题地图
  • 什么是模板字符串?
  • 路由控制和策略路由
  • Transformer革新:Infini-Transformer在长文本处理中的突破
  • 前端菜鸡学习日记 -- 关于pnpm
  • MySQL触发器基本结构
  • mongosh 和mongo 命令行连接MongoDB