python练习题6(模块、包)

本文探讨了Python中循环导入的原因及其解决方案,并通过实例演示了如何创建和使用模块及包。内容包括:解决循环导入问题、实现housework模块的功能、模块搜索路径分析、绝对与相对导入的实践,以及构建多级包结构并访问其中的函数。
摘要由CSDN通过智能技术生成

#1.以自己的理解总结为什么会出现循环导入,并用代码举例说明

#m1.py
import m2
x = 10
print(m2.y)

#m2.py
import m1
y = 20
# 当执行m1.py时, 先执行import m2语句 指向m2.py的名称空间,  
# 在m2.py中执行 import m1 指向m1的名称空间, 再执行x = 10, 
# 在执行print(m2.y)时m2的名称空间并没有y = 20这个申明, 所以报错。

#2.如何来解决循环导入,并解决第1题中的循环导入问题

# 将模块导入在对象申明之后即可
# m1.py
x = 10
import m2
print(m2.y)

# m2.py
y = 20
import m1
print(m1.x)

#3.完成housework.py文件,拥有三个功能:sweep、wash、cook,自定义功能实现(函数体),从文件自执行和作为模块使用两方面,
#验证三个功能,且两方面使用方式可以共存

#run.py
import sys
import os

sys.path.append(os.path.dirname(__file__))
print(sys.path)

import housework

housework.sweep()
housework.wash()
housework.cook()


#housework.py

def sweep():
    print("sweep")


def wash():
    print('wash')


def cook():
    print('cook')


if __name__ == '__main__':
    sweep()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值