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

湖北黄冈疫情最新消息/seo 推广怎么做

湖北黄冈疫情最新消息,seo 推广怎么做,北京市建设厅网站,vs做网站案例一起来看看吧。 1. 如何在运行状态查看源代码? 查看函数的源代码,我们通常会使用 IDE 来完成。 比如在 PyCharm 中,你可以 Ctrl 鼠标点击 进入函数的源代码。 那如果没有 IDE 呢? 当我们想使用一个函数时,如何知…

一起来看看吧。

1. 如何在运行状态查看源代码?

查看函数的源代码,我们通常会使用 IDE 来完成。

比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。

那如果没有 IDE 呢?

当我们想使用一个函数时,如何知道这个函数需要接收哪些参数呢?

当我们在使用函数时出现问题的时候,如何通过阅读源代码来排查问题所在呢?

这时候,我们可以使用 inspect 来代替 IDE 帮助你完成这些事

# demo.py
import inspectdef add(x, y):return x + yprint("===================")
print(inspect.getsource(add))

运行结果如下

$ python demo.py
===================
def add(x, y):return x + y

2. 如何关闭异常自动关联上下文?

当你在处理异常时,由于处理不当或者其他问题,再次抛出另一个异常时,往外抛出的异常也会携带原始的异常信息。

就像这样子。

try:print(1 / 0)
except Exception as exc:raise RuntimeError("Something bad happened")

从输出可以看到两个异常信息

Traceback (most recent call last):File "demo.py", line 2, in <module>print(1 / 0)
ZeroDivisionError: division by zeroDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "demo.py", line 4, in <module>raise RuntimeError("Something bad happened")
RuntimeError: Something bad happened

如果在异常处理程序或 finally 块中引发异常,默认情况下,异常机制会隐式工作会将先前的异常附加为新异常的 __context__属性。这就是 Python 默认开启的自动关联异常上下文。

如果你想自己控制这个上下文,可以加个 from 关键字(from 语法会有个限制,就是第二个表达式必须是另一个异常类或实例。),来表明你的新异常是直接由哪个异常引起的。

try:print(1 / 0)
except Exception as exc:raise RuntimeError("Something bad happened") from exc

输出如下

Traceback (most recent call last):File "demo.py", line 2, in <module>print(1 / 0)
ZeroDivisionError: division by zeroThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "demo.py", line 4, in <module>raise RuntimeError("Something bad happened") from exc
RuntimeError: Something bad happened

当然,你也可以通过with_traceback()方法为异常设置上下文__context__属性,这也能在traceback更好的显示异常信息。

try:print(1 / 0)
except Exception as exc:raise RuntimeError("bad thing").with_traceback(exc)

最后,如果我想彻底关闭这个自动关联异常上下文的机制?有什么办法呢?

可以使用 raise...from None,从下面的例子上看,已经没有了原始异常

$ cat demo.py
try:print(1 / 0)
except Exception as exc:raise RuntimeError("Something bad happened") from None
$
$ python demo.py
Traceback (most recent call last):File "demo.py", line 4, in <module>raise RuntimeError("Something bad happened") from None
RuntimeError: Something bad happened
(PythonCodingTime)

03. 最快查看包搜索路径的方式

当你使用 import 导入一个包或模块时,Python 会去一些目录下查找,而这些目录是有优先级顺序的,正常人会使用 sys.path 查看。

>>> import sys
>>> from pprint import pprint   
>>> pprint(sys.path)
['','/usr/local/Python3.7/lib/python37.zip','/usr/local/Python3.7/lib/python3.7','/usr/local/Python3.7/lib/python3.7/lib-dynload','/home/wangbm/.local/lib/python3.7/site-packages','/usr/local/Python3.7/lib/python3.7/site-packages']
>>> 

那有没有更快的方式呢?

我这有一种连 console 模式都不用进入的方法呢?

你可能会想到这种,但这本质上与上面并无区别

[wangbm@localhost ~]$ python -c "print('\n'.join(__import__('sys').path))"/usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg
/usr/lib/python2.7/site-packages/redis-3.0.1-py2.7.egg
/usr/lib64/python27.zip
/usr/lib64/python2.7
/usr/lib64/python2.7/plat-linux2
/usr/lib64/python2.7/lib-tk
/usr/lib64/python2.7/lib-old
/usr/lib64/python2.7/lib-dynload
/home/wangbm/.local/lib/python2.7/site-packages
/usr/lib64/python2.7/site-packages
/usr/lib64/python2.7/site-packages/gtk-2.0
/usr/lib/python2.7/site-packages

这里我要介绍的是比上面两种都方便的多的方法,一行命令即可解决

[wangbm@localhost ~]$ python3 -m site
sys.path = ['/home/wangbm','/usr/local/Python3.7/lib/python37.zip','/usr/local/Python3.7/lib/python3.7','/usr/local/Python3.7/lib/python3.7/lib-dynload','/home/wangbm/.local/lib/python3.7/site-packages','/usr/local/Python3.7/lib/python3.7/site-packages',
]
USER_BASE: '/home/wangbm/.local' (exists)
USER_SITE: '/home/wangbm/.local/lib/python3.7/site-packages' (exists)
ENABLE_USER_SITE: True

从输出你可以发现,这个列的路径会比 sys.path 更全,它包含了用户环境的目录。

4. 将嵌套 for 循环写成单行

我们经常会如下这种嵌套的 for 循环代码

list1 = range(1,3)
list2 = range(4,6)
list3 = range(7,9)
for item1 in list1:for item2 in list2:for item3 in list3:print(item1+item2+item3)

这里仅仅是三个 for 循环,在实际编码中,有可能会有更层。

这样的代码,可读性非常的差,很多人不想这么写,可又没有更好的写法。

这里介绍一种我常用的写法,使用 itertools 这个库来实现更优雅易读的代码。

from itertools import product
list1 = range(1,3)
list2 = range(4,6)
list3 = range(7,9)
for item1,item2,item3 in product(list1, list2, list3):print(item1+item2+item3)

输出如下

$ python demo.py
12
13
13
14
13
14
14
15

5. 如何使用 print 输出日志

初学者喜欢使用 print 来调试代码,并记录程序运行过程。

但是 print 只会将内容输出到终端上,不能持久化到日志文件中,并不利于问题的排查。

如果你热衷于使用 print 来调试代码(虽然这并不是最佳做法),记录程序运行过程,那么下面介绍的这个 print 用法,可能会对你有用。

Python 3 中的 print 作为一个函数,由于可以接收更多的参数,所以功能变为更加强大,指定一些参数可以将 print 的内容输出到日志文件中

代码如下:

>>> with open('test.log', mode='w') as f:
...     print('hello, python', file=f, flush=True)
>>> exit()$ cat test.log
hello, python

 python大数据开发方向最新教程
2022年hadoop3.x入门2022最新大数据Hadoop入门视频教程,最适合零基础自学的大数据Hadoop教程
2022年大数据spark3.2入门Spark全套视频教程,4天spark3.2快速入门到精通,全网首套基于Python语言的spark教程
2022年MySQL基础入门2022最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程

Python+大数据开发
MySQL数据库:2022最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程
Hadoop入门:2022最新大数据Hadoop入门视频教程,最适合零基础自学的大数据Hadoop教程
Hive数仓项目:大数据项目实战教程_大数据企业级离线数据仓库,在线教育项目实战(Hive数仓项目完整流程)

PB内存计算
Python入门:全套Python教程_Python基础入门视频教程,零基础小白自学Python必备教程
Python编程进阶:Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程
spark3.2从基础到精通:Spark全套视频教程,4天spark3.2快速入门到精通,全网首套基于Python语言的spark教程
Hive+Spark离线数仓工业项目实战:全网首次披露大数据Spark离线数仓工业项目实战,Hive+Spark构建企业级大数据平台

 

http://www.jmfq.cn/news/4927051.html

相关文章:

  • 烟台制作网站的公司简介/网络营销推广方式包括
  • 微商网站模板/网络销售推广公司
  • 做网站 视频/最简单的网页制作
  • 九江网站开发公司/在线建站平台免费建网站
  • 建设网站的主要设备/推广软文
  • 太仓做网站/建立免费个人网站
  • 做网站合同封面/美国疫情最新消息
  • 徐州网站建设哪家好/长沙seo网络优化
  • 一般自己怎么做网站/百度seo收费
  • 建站平台和网站建设的区别/百度推广做二级域名
  • 临沂做网站的/百度公司推广
  • 开发商破产了购房者怎么办/百度seo关键词排名优化教程
  • 怎么做地下彩票网站/什么是百度竞价推广
  • 来个网站/国际免费b站
  • 购物网站模板代码/企业网站的推广方法有哪些
  • 关于做网站的策划书/线上销售平台有哪些
  • 南京学校网站建设策划/旺道seo软件
  • 服务器可以放几个网站/搜索引擎在线观看
  • 怎么做本地婚姻介绍网站/山西网络营销seo
  • 网页设计图片的代码/seo中文
  • 刷赞网站建设/免费推广软件下载
  • minecraft做图网站/php开源建站系统
  • 优秀高端网站建设公司/网站推广优化公司
  • 广告网站设计怎么样/100大看免费行情的软件
  • 网站备案系统验证码出错的解决方案/网站设计开发网站
  • 域名自助服务平台/小璇seo优化网站
  • 宿迁做网站 宿迁网站建设/中国互联网公司排名
  • 网络公司发生网站建设费分录/湖南关键词优化快速
  • 织梦m网站伪静态/北京网站建设公司案例
  • 中国住建网查询证书/郑州seo