脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - python打印经典故事从前有座山的几种写法

python打印经典故事从前有座山的几种写法

2022-12-14 11:25他们叫我技术总监 Python

在定义了函数之后,就可以使用该函数了,下面这篇文章主要给大家介绍了关于python打印经典故事从前有座山的几种写法,通过这个有意思的实例帮助大家学习python,需要的朋友可以参考下

一、前期准备

假设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文件。对应效果如下图所示。感觉在无线套娃,挺有意思的,哈哈哈。

python打印经典故事从前有座山的几种写法

 

二、多种import调用方法

如果一个模块被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删除的是变量,而不是数据。

1、第一种写法

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']

效果图

python打印经典故事从前有座山的几种写法

2、第二种写法

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']

效果图

python打印经典故事从前有座山的几种写法

3、第三种写法

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打印经典故事从前有座山的文章就介绍到这了,更多相关python打印从前有座山内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_29061315/article/details/124546482

延伸 · 阅读

精彩推荐
  • Python详解Python中with语句的用法

    详解Python中with语句的用法

    这篇文章主要介绍了Python中with语句的用法,with语句的使用是Python学习过程当中的基础知识,本文来自于IBM官方技术文档,需要的朋友可以参考下 ...

    IBM3602020-06-07
  • Python2020版Python学习路线图(附学习资料)

    2020版Python学习路线图(附学习资料)

    这篇文章主要介绍了Python学习路线图(2020最新版),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    zx3382020-09-16
  • PythonPython处理中文标点符号大集合

    Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏,下面小编给大家带来了Python处理中文标点符号...

    脚本之家7592021-02-21
  • PythonPython+request+unittest实现接口测试框架集成实例

    Python+request+unittest实现接口测试框架集成实例

    这篇文章主要介绍了Python+request+unittest实现接口测试框架集成实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Andrea-Pirlo10892021-01-22
  • Python使用Pyinstaller打包exe文件详细图文教程

    使用Pyinstaller打包exe文件详细图文教程

    PyInstaller可以用来打包python应用程序,打包完的程序就可以在没有安装Python解释器的机器上运行了,下面这篇文章主要给大家介绍了关于使用Pyinstaller打包exe文...

    彳亍2614952022-08-15
  • Pythonpython模块shutil函数应用示例详解教程

    python模块shutil函数应用示例详解教程

    这篇文章主要为大家介绍了python模块中shutil函数的应用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    数据分析与统计学之美8382022-02-19
  • Pythonpython 递归相关知识总结

    python 递归相关知识总结

    这篇文章主要介绍了python 递归相关知识总结,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...

    把苹果咬哭10602021-09-13
  • Pythonpython使用matplotlib绘制折线图

    python使用matplotlib绘制折线图

    这篇文章主要为大家详细介绍了python使用matplotlib绘制折线图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    只晓得闲逛5102022-12-06