我想知道将
status_report
重新分配给局部变量是否是一个好习惯:
def report_remote(remote,error):
def report_error(err):
if err not in status_report:
status_report[err] = []
status_report[err].append(remote)
status_report = self.status_report
match error:
case LookupError():
report_error("not_in_list")
case ConnectionError():
report_error("no_connection")
我这样做是为了避免多次重复
self
,但删除 this
可能会使代码不太清晰。
还有...
如果
self
引用非常大怎么办,例如当属性是多级字典并且我需要三个级别的数据时:self.report['status']['errors']['runtime']
?
在这种情况下,分配
status_report = self.report['status']['errors']['runtime']
是一个好的做法吗?”
我主要关心的是知道我是否应该避免将
self
属性分配给局部变量,因为这可能会让其他开发人员感到困惑
一般来说,是的。我自己觉得赋值是个好习惯
status_report = self.report['status']['errors']['runtime']
。如果你多次调用self.report['status']['errors']['runtime']
,而self.report
中有这么多级别,效率肯定会很差,因为python是解释性编程语言。
但是,当您只需要调用它一次或两次,或者它对程序的时间成本不敏感时,这并不重要。