当前位置: 首页 > news >正文

asp.net个人网站空间四川住房和建设厅官网

asp.net个人网站空间,四川住房和建设厅官网,服务器及网站建设的特点,菠萝菠萝蜜高清免费视频文章目录 1、情景描述2、如何获取调用者脚本名#xff1f;3、sys._getframe()总结 1、情景描述 当我们在使用Python进行一些操作时#xff0c;如果我们希望我们封装的模块里的方法能够在给使用者调用的同时可以获取到调用者当前正在执行的Python脚本名#xff0c;以做一些后… 文章目录 1、情景描述2、如何获取调用者脚本名3、sys._getframe()总结 1、情景描述 当我们在使用Python进行一些操作时如果我们希望我们封装的模块里的方法能够在给使用者调用的同时可以获取到调用者当前正在执行的Python脚本名以做一些后续操作。这听起来好像跟反射有异曲同工之处。反射可以实现吗 来看一个需求 现有一个用于封装工具API的模块module.py如下 def do():...# 处理中间过程...return result该模块中有一个方法do()供调用者调用。现在有一个需求该方法中的处理中间过程需要获取到调用者当前执行的Python脚本名并做一些处理操作最后返回给调用者结果 这种情况需要如何实现呢可以尝试以下办法 2、如何获取调用者脚本名 2.1、方式1使用反射 在Java中我们知道反射是指在类加载时动态获取类的成员包括类、属性、方法等以对类和对象进行修改。在Python中这类似。反射可以动态获取对象的属性和方法但对于Python脚本好像和它没啥关系吧更何况Python脚本名呢 2.2、方式2使用os模块 Python内置的os模块提供一些文件和路径处理的方法兴许这里面有可以帮我们完成这个需求的方法呢 os模块中的__file__属性可用于返回当前脚本的文件路径包括文件名结合os.path.basename()是否可以获取调用者的脚本名呢马上进行下面尝试 工具API模块module.py import osdef do():print(os.path.basename(__file__))调用者模块client.py from module import dodo() module.py什么情况我要获取的是调用者脚本名我需要你打印出来的是client.py而不是module.py 从结果可见这种方式不太行啊 2.3、使用sys模块 Python内置的sys模块主要用于Python解释器和系统之间的交互例如获取系统环境变量。sys可以实现吗 sys提供了一个函数sys._getframe()用于查看函数被什么函数调用及被第几行调用以及被调用函数所在的文件 sys._getframe(depth)从调用堆栈返回一个框架对象。 如果给定了可选整数depth则返回在堆栈顶部以下调用多次的框架对象。depth的默认值为0返回调用堆栈顶部的帧。如果参数比调用堆栈更深则会引发ValueError异常 sys._getframe()的更多使用见文末总结 来试一下吧 工具API模块module.py import os import sysdef do():print(os.path.basename(sys._getframe().f_back.f_code.co_filename))调用者模块client.py from module import dodo() client.py嗯嗯sys模块的sys._getframe()可以帮我们完成上述需求但较为复杂不好理解 2.4、sys获取argv sys提供的sys.argv[]可用于访问命令行参数。然而sys.argv[0]可用于获取正在执行的Python脚本本身 这可能是最好的一种方式。示例如下 工具API模块module.py import os import sysdef do():print(os.path.basename(sys.argv[0]))调用者模块client.py from module import dodo() client.py这不是更完美吗 3、sys._getframe()总结 sys._getframe()的常用使用总结如下 sys._getframe(0) # 被调用模块层 sys._getframe(1) # 调用者模块层 sys._getframe().f_back # 调用者模块层和sys._getframe(1)相同 sys._getframe(0).f_code.co_filename # 被调用模块当前文件名也可以通过__file__获得 sys._getframe(1).f_code.co_filename # 调用者模块当前文件名和sys._getframe().f_back.f_code.co_filename相同 sys._getframe(0).f_code.co_name # 被调用模块层当前函数名 sys._getframe(1).f_code.co_name # 调用者模块层调用所在函数名如果没有则返回module sys._getframe(0).f_lineno # 被调用模块层被调用函数的行号 sys._getframe(1).f_lineno # 调用者模块层调用该函数所在的行号
http://www.huolong8.cn/news/426261/

相关文章:

  • 网站建设陕西外贸建站新闻资讯
  • 国内产品网站建设佳木斯网站建设
  • 湖南住房城乡建设部网站网店推广新趋势
  • 行业门户网站是什么.网站排版
  • 昆明网站建设公司哪家便宜金华住房和城乡建设厅网站
  • 政务大厅网站建设管理制度株洲营销型网站建设
  • 浦东新区建设工程安全质量监督站网站做设计找图片的网站
  • 重庆专业网站推广中国商标交易官网
  • 做网站是不是要域名费珠海移动网站设计
  • 网站备案个人承诺书三星网上商城下载
  • 网站做电商资质怎么做自己的淘宝客网站
  • 免费生成网站网址网站公告怎么做
  • 曲阜网站设计低价刷赞网站推广
  • 网站后期维修问题代销网站源码
  • 有源代码怎么制作网站网站开发和美工的区别
  • 辽宁专业网站建设大全网站不提交表单
  • 南通做外贸网站外链网站 风险
  • 厚街网站建设费用网站开发合同是否专属管辖
  • 网站建设上海站霸移动官网网站建设
  • 小学生网上学做辅导哪个网站好网页制作模板主题
  • 竹子系统做的网站可以优化么阳江网红服务区
  • 海口 网站制作公司旅游网站静态模版下载
  • 网站美工设计详细步骤wordpress 图片显示慢
  • 规范贷款网络营销活动济南网络优化推广公司哪家好
  • 中国市政建设局网站色系网站哪里有
  • 宜昌有做网站的公司吗牛企网络科技有限公司
  • 泰安网站建设平台wordpress模板哪里买
  • 海口网站建设公司个人网站怎样备案
  • 海珠一站式网站建设重庆做企业年报在哪个网站做
  • 网站排名易下拉教程企业形象设计手册