python的import导入规则

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

关于python中的import导入有一些注意事项需要在这里说明一下。


一、pycharm只能看到当前工作路径父目录下所有文件和项目根目录下所有文件

例如下面项目文件main.py示例

只能看到demo0下面所有文件:hello算法,matplotlib...等等

和main.py父目录test1下面的sgn.py等等。

在main.py里面只能看到平行的sgn.py或者最顶层demo0。

二、sys或者图形界面添加解释器路径(搜寻路径)

sys运行时添加进去,运行结束又会移出来。

待更新。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

三、import导入那个文件就是将导入的那个文件的所有顶层代码都运行了一遍

下面以 sgn,py和main.py两个py文件来演示

python 复制代码
# sgn.py
class Constant:
    def __init__(self):
        self.a = 100
        self.b = 200
print('导入sgn.py文件就会将sgn.py的所有顶层代码执行一遍,例如这里的print()函数,还有类的创建(定义)、类的实例化等等都是顶层代码')
python 复制代码
# main.py
from sgn import Constant

运行main.py会输出:

可以看到sgn.py的print直接就运行了。记住导入什么文件导入的时候就运行。

四、import可以导类,也可以直接导已经实例化的对象

示例1:导入类

python 复制代码
# 在 my_module.py 文件中定义一个类
# my_module.py

class MyClass:
    def __init__(self, x):
        self.x = x

    def display(self):
        print("Value of x:", self.x)
python 复制代码
# 在另一个文件中导入 MyClass 类并使用
# main.py

from my_module import MyClass

obj = MyClass(42)
obj.display()

示例2:导入实例化对象

python 复制代码
# 在 my_objects.py 文件中定义一些实例化对象
# my_objects.py

class MyObject:
    def __init__(self, x):
        self.x = x

    def display(self):
        print("Value of x:", self.x)

# 创建一些实例化对象
obj1 = MyObject(10)
obj2 = MyObject(20)
python 复制代码
# 在另一个文件中导入实例化对象并使用
# main.py

from my_objects import obj1, obj2

obj1.display()
obj2.display()

示例3:导入实例化对象的应用

python 复制代码
# sgn.py
class Constant:
    # 有时需要进行标准化字段或者记录一下常量
    def __init__(self):
        self.a = 100
        self.b = 200


# 实例化常数类
Con = Constant()
python 复制代码
# main.py
from sgn import Con

def add(a):
    return a + 11

print(add(Con.a))

运行main.py会输出:

相关推荐
SunnyDays10117 分钟前
使用 Python 高效删除 Excel 重复数据(Excel 去重方法详解)
python·删除excel重复行·删除excel重复数据·excel去重·删除excel重复值
再__努力1点9 分钟前
【68】颜色直方图详解与Python实现
开发语言·图像处理·人工智能·python·算法·计算机视觉
Brian Xia12 分钟前
Nano-vLLM 源码分析(一) - 课程大纲
python·ai
Jinkxs15 分钟前
Java 架构 02:DDD 领域模型设计实战(限界上下文划分)
java·开发语言·架构
猪在黑魔纹里18 分钟前
解决VSCode无法高亮、解析numpy中的部分接口(如pi、deg2rad)
ide·vscode·python·numpy
爱笑的眼睛1127 分钟前
文本分类的范式演进:从统计概率到语言模型提示工程
java·人工智能·python·ai
星川皆无恙32 分钟前
基于知识图谱+深度学习的大数据NLP医疗知识问答可视化系统(全网最详细讲解及源码/建议收藏)
大数据·人工智能·python·深度学习·自然语言处理·知识图谱
Tipriest_38 分钟前
旋转矩阵,齐次变换矩阵,欧拉角,四元数等相互转换的常用代码C++ Python
c++·python·矩阵
毕设源码-钟学长39 分钟前
【开题答辩全过程】以 基于PHP的家常菜谱教程网站为例,包含答辩的问题和答案
开发语言·php
周杰伦_Jay40 分钟前
【Go/Python/Java】基础语法+核心特性对比
java·python·golang