将自属性重新分配给局部变量是一个好习惯吗

问题描述 投票:0回答:1

我想知道将

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
属性分配给局部变量,因为这可能会让其他开发人员感到困惑

python python-3.x self pep8 pep
1个回答
0
投票

一般来说,是的。我自己觉得赋值是个好习惯

status_report = self.report['status']['errors']['runtime']
。如果你多次调用
self.report['status']['errors']['runtime']
,而
self.report
中有这么多级别,效率肯定会很差,因为python是解释性编程语言。

但是,当您只需要调用它一次或两次,或者它对程序的时间成本不敏感时,这并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.