python的import导入规则

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

文章目录

  • 前言
  • 一、pycharm只能看到当前工作路径父目录下所有文件和项目根目录下所有文件
  • 二、sys或者图形界面添加解释器路径(搜寻路径)
  • 三、import导入那个文件就是将导入的那个文件的所有顶层代码都运行了一遍
  • 四、import可以导类,也可以直接导已经实例化的对象
    • 示例1:导入类
    • 示例2:导入实例化对象
    • 示例3:导入实例化对象的应用


前言

关于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文件来演示

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

运行main.py会输出:
在这里插入图片描述
可以看到sgn.py的print直接就运行了。记住导入什么文件导入的时候就运行。

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

示例1:导入类

# 在 my_module.py 文件中定义一个类
# my_module.pyclass MyClass:def __init__(self, x):self.x = xdef display(self):print("Value of x:", self.x)
# 在另一个文件中导入 MyClass 类并使用
# main.pyfrom my_module import MyClassobj = MyClass(42)
obj.display()

示例2:导入实例化对象

# 在 my_objects.py 文件中定义一些实例化对象
# my_objects.pyclass MyObject:def __init__(self, x):self.x = xdef display(self):print("Value of x:", self.x)# 创建一些实例化对象
obj1 = MyObject(10)
obj2 = MyObject(20)
# 在另一个文件中导入实例化对象并使用
# main.pyfrom my_objects import obj1, obj2obj1.display()
obj2.display()

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

# sgn.py
class Constant:# 有时需要进行标准化字段或者记录一下常量def __init__(self):self.a = 100self.b = 200# 实例化常数类
Con = Constant()
# main.py
from sgn import Condef add(a):return a + 11print(add(Con.a))

运行main.py会输出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691439.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【密码学原语介绍】PPRF(可穿孔伪随机函数)

在现代密码学中,伪随机函数(PRF)是构建各种加密协议和系统的基石。它们提供了一种方式,通过它,给定一个密钥和一个输入,可以生成一个无法预测的伪随机输出。这种机制对于确保数据加密、身份验证和完整性验证…

通过acl设置阻止数据包通过

实验拓扑和信息如图(配置信息参考上一章内容) acl设置代码 AR4 系统是视图下 acl 2000 rule 5 deny source 10.10.10.1 0 接口0视图下 数据接收时 traffic-filter inbound acl 2000 测试结果

nacos命名空间的配置

给微服务配置namespace 给微服务配置namespace只能通过修改配置来实现。 例如,修改order-service的application.yml文件: spring:cloud:nacos:server-addr: localhost:8848discovery:cluster-name: HZnamespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f…

第二步->手撕spring源码之bean操作

本步骤目标 本步骤继续完善 Spring Bean 容器框架的功能开发,在这个开发过程中会用到较多的接口、类、抽象类,它们之间会有类的实现、类的继承。 这一次我们把 Bean 的创建交给容器,而不是我们在调用时候传递一个实例化好的 Bean 对象&#x…

《Fundamentals of Power Electronics》——转换器的传递函数

转换器的工程设计过程主要由以下几个主要步骤组成: 1. 定义了规范和其他设计目标。 2. 提出了一种电路。这是一个创造性的过程,利用了工程师的物理洞察力和经验。 3. 对电路进行了建模。组件和系统的其他部分适当建模,通常使用供应商提供的…

网络安全等级保护的发展历程

1994年国务院147号令第一次提出,计算机信息系统实行安全等级保护,这也预示着等保的起步。 2007年《信息安全等级保护管理办法》的发布之后。是等保在各行业深耕落地的时代。 2.0是等保版本的俗称,不是等级。等保共分为五级,二级…

NodeMCU ESP8266 获取I2C从机地址

文章目录 前言关于地址位读写位程序总结前言 I2C总线上可以挂载很多的从设备,每个设备都会有一个自己唯一的一个地址; 关于地址位 通常地址位占7位数据,主设备如果需要向从机发送/接收数据,首先要发送对应从机的地址,然后会匹配总线上挂载的从机的地址; 读写位 该位…

如何使用 WavLM音频合成模型

微软亚洲研究院与 Azure 语音组的研究员们提出了通用语音预训练模型 WavLM。通过 Denoising Masked Speech Modeling 框架(核心思想是通过预测被掩蔽(即遮蔽或删除)的语音部分来训练模型,同时还包括去噪的过程)&#x…

如何到《新英格兰医学杂志》 NEJM查找下载文献

《新英格兰医学杂志》NEJM是世界上阅读、引用最广泛、影响力最大的综合性医学期刊之一。NEJM集团出版的期刊还包括NEJM Journal Watch、NEJM Catalyst及NEJM Evidence。NEJM是一份全科医学周刊,出版对生物医学科学与临床实践具有重要意义的一系列主题方面的医学研究…

数据可视化训练第四天(模拟投掷筛子并且统计频次)

投掷一个筛子 import matplotlib.pyplot as plt from random import randint import numpy as npclass Die:"""模拟投掷筛子"""def __init__(self,num_sides6):self.num_sidesnum_sidesdef roll(self):return randint(1,self.num_sides)num1000…

矩阵稀疏扫描 - 矩阵

系列文章目录 文章目录 系列文章目录前言一、题目描述二、输入描述三、输出描述四、Java代码五、测试用例提示 前言 本人最近再练习算法,所以会发布一些解题思路,希望大家多指教 一、题目描述 如果矩阵中的许多系数都为零,那么该矩阵就是稀…

最美博客POETIZE个人博客系统源码

源码说明: POETIZE个人博客系统源码 | 最美博客 这是一个基于SpringBoot、Vue2和Vue3的开源项目,支持移动端自适应,并具备完善的前台和后台管理功能。 网站分为两个模块: 1. 博客系统:包括文章、表白墙、图片墙、收…