python中的try:and except:Matter

2024-06-16 08:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

当我搜索一段代码时,我发现如下内容:

try:
   job_bulletin_date = pd.to_datetime(...) #Just an example
except:
   job_bulletin_date = pd.to_datetime(...) #Just an exapmle

我的意思是他们在try:except:下面写相同的代码,这背后有什么好处吗?你知道吗

我们可以用下面的pass函数替换它吗?你知道吗

try:
   job_bulletin_date = pd.to_datetime(...)
except:
   pass

Tags: to代码an内容datetimedateexamplejob
1条回答
网友
1楼 · 发布于 2024-06-16 08:34:01

您也许可以,但它会改变代码的行为。在初始函数出于任何原因抛出异常后,except将再次调用该函数,但如果使用pass,则不会调用。这只有在三种情况下才重要:

  1. pd.to_datetime(...)是一个有副作用的函数,或者在pd.to_datetime的参数或主体中调用的函数有副作用。这意味着它会影响其作用域之外的某些全局上下文,例如全局变量或数据库。函数名听起来不太可能,但值得检查,因为第一次尝试可能对上下文做了一些更改,从而允许第二次尝试通过。你知道吗
  2. pd.to_datetime()访问可能随时间变化的变量或资源。例如,它可能在尝试向web服务发出请求时超时,或者在文件系统中查找它希望由其他进程创建的文件时超时。这意味着,同一函数的后续调用可能会导致不同的行为,因为自上次调用以来,上下文已经发生了变化。同样,这似乎不太可能,但值得一试。你知道吗
  3. 在第二次调用中,pd.to_datetime()的参数不同,这意味着函数的行为可能不同。你知道吗

如果这些情况都不是真的,那么您可以删除对函数的第二个调用。我建议在那里放一些比pass更有用的东西,即使只是一个print语句,在调试时对任何未来的用户都更有帮助。你知道吗

相关问题 更多 >