python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)

简介: 一、模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x='m1' ''' m2.

一、模块的循环导入问题

run.py

# import m1 # 第一次导入

m1.py

# 错误示范
'''
print('正在导入m1')
from m2 import y #第一次导入m2
x='m1'
'''

m2.py

# 错误示范
'''
print('正在导入m2')
from m1 import x

y='m2'
'''

解决方案:

一:把循环导入的语句放到名字定义的后面

# m1.py
#
y='m2' # from m1 import x
# m2.py
# print('正在导入m2')
#
# y='m2'
# from m1 import x

二:将循环导入的语句放到函数内

# m1.py
print('正在导入m1')

def f1():
    from m2 import y,f2 #第一次导入m2
    print('m1.f1---->y: ',y)
    f2()
x='m1'
# m2.py
def
f2(): from m1 import x print('m2.f2--->x: ',x) y='m2'

 二、区分python文件的两种用途

当文件被执行时__name__=='__main__'

当文件被导入时__name__=='模块名'

if __name__ == '__main__':
    f1()
    f2()

三、模块的搜索路径

模块搜索路径的优先级:1.内存中已经加载过的,2.内置模块,3.sys.path第一个值是当前执行文件所在的文件夹

环境变量是以当前执行文件为准的.

注: 所有被导入的模块参照环境变量sys.path都是以执行文件为准的.被导入的模块再去导入其它模块,也是参照sys.path

四、绝对导入与相对导入

绝对导入:以执行文件的sys.path为起始位置开始导入,称之为绝对导入

  优点:执行文件与被导入的模块中都可以用

  缺点:所有导入都是以sys.path为起始点,导入麻烦

相对导入:

  符号:一个"."代表当前所在文件夹,".."代表上一级文件夹,"..."代表上一级的上一级文件夹

  优点:导入更加简单

  缺点:只能在导入包中的模块时才能使用,不能在执行文件中使用

注意: 执行文件中只能用绝对导入

五、软件开发的目录规范

规范化的目录结构能更好的控制程序,让程序具有更高的可读性

1.可读性高 2.可维护性高

通常一个项目都会有的目录如下:

项目名/

| -- bin/  #程序启动脚本/程序入口

|  | -- start.py

|

| -- conf/ #配置文件

|        | --settings.py

| -- core/ #业务逻辑

|        | --src.py 

| -- db/ 

|        | --数据库文件

| -- lib/ #第三方库

|        | --common.py

| -- log/  #日志

|        | --transaction.log

README #说明文档

 

目录后继会继续补充!

 

焚膏油以继晷,恒兀兀以穷年。
相关文章
|
8天前
|
缓存 供应链 监控
1688item_search_factory - 按关键字搜索工厂数据接口深度分析及 Python 实现
item_search_factory接口专为B2B电商供应链优化设计,支持通过关键词精准检索工厂信息,涵盖资质、产能、地理位置等核心数据,助力企业高效开发货源、分析产业集群与评估供应商。
|
10天前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
1月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
11天前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。
|
29天前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
257 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
19天前
|
Web App开发 缓存 监控
微店店铺商品搜索(item_search_shop)接口深度分析及 Python 实现
item_search_shop接口用于获取特定店铺的全部商品数据,支持批量获取商品列表、基础信息、价格、销量等,适用于竞品监控、商品归类及店铺分析等场景,助力全面了解店铺经营状况。
|
6天前
|
缓存 自然语言处理 算法
item_search - Lazada 按关键字搜索商品接口深度分析及 Python 实现
Lazada的item_search接口是关键词搜索商品的核心工具,支持多语言、多站点,可获取商品价格、销量、评分等数据,适用于市场调研与竞品分析。
|
2月前
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
2月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
86 0
|
3月前
|
数据采集 Web App开发 JavaScript
无头浏览器技术:Python爬虫如何精准模拟搜索点击
无头浏览器技术:Python爬虫如何精准模拟搜索点击

推荐镜像

更多