Python 官方文档:入门教程 => 点击学习
目录一、前期准备二、多种import调用方法 1、第一种写法2、 第二种写法3、第三种写法总结一、前期准备 假设parent/__init__.py 里的代码是:
假设parent/__init__.py 里的代码是:
# -*- coding: UTF-8 -*-
print('从前有座山,')
假设parent/one/__init__.py 里的代码是:
# -*- coding: UTF-8 -*-
print('山上有座庙,')
假设parent/one/one/__init__.py 里的代码是:
# -*- coding: UTF-8 -*-
print('庙里有个老和尚,')
假设parent/two/__init__.py 里的代码是:
# -*- coding: UTF-8 -*-
print('老和尚说:')
假设parent/three/__init__.py 里的代码是:
# -*- coding: UTF-8 -*-
print('从前有座山,')
按上述所示建立对于的py文件。对应效果如下图所示。感觉在无线套娃,挺有意思的,哈哈哈。
如果一个模块被import过,python 会将导入的模块缓存在sys.modules
字典里缓存起来,再次导入的时候不会重新执行导入动作,直接从缓存里取。反之,如果我们从sys.modules
里把导入的模块删除,则再次import会再次触发模块导入动作。
利用以上知识,我们的目标是通过 import 语句导入模块,触发每个包目录下__init__.py
加载时执行print语句,从而循环打印出:
从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚说:
从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚说:
从前有座山,
...
首先先介绍下Python中del的用法,del用于删除对应的变量的引用。
由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。
if __name__=='__main__':
a=1 # 对象 1 被 变量a引用,对象1的引用计数器为1
b=a # 对象1 被变量b引用,对象1的引用计数器加1
c=a #1对象1 被变量c引用,对象1的引用计数器加1
del a #删除变量a,解除a对1的引用
del b #删除变量b,解除b对1的引用
print(c) #最终变量c仍然引用1
del删除的是变量,而不是数据。
import sys
if __name__ == '__main__':
while True:
import parent.one.one
import parent.two
import parent
del sys.modules['parent.one']
del sys.modules['parent.one.one']
del sys.modules['parent.two']
del sys.modules['parent']
效果图
import sys
if __name__ == '__main__':
while True:
import parent.one.one
import parent.two
del sys.modules['parent']
del sys.modules['parent.one']
del sys.modules['parent.one.one']
del sys.modules['parent.two']
效果图
import sys
if __name__ == '__main__':
while True:
import parent
import parent.one
import parent.one.one
import parent.two
del sys.modules['parent']
del sys.modules['parent.one']
del sys.modules['parent.one.one']
del sys.modules['parent.two']
效果图
到此这篇关于python打印经典故事从前有座山的文章就介绍到这了,更多相关python打印从前有座山内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: python打印经典故事从前有座山的几种写法
本文链接: https://www.lsjlt.com/news/117641.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0