【发布时间】:2021-12-12 07:35:02
【问题描述】:
python 中静态方法的用途之一(我一般假设为 OOP)是编写不需要访问任何属性的实用程序函数。我认为它更多的是为了可读性以及让用户直接使用类名而不是类的实例。
您可能需要使用依赖于其他静态方法的静态方法执行任务。在这种情况下有什么好的做法?您是否必须将它们编写为实例方法并实例化该类以让每个方法都可以通过实例访问其他方法?示例:
这是不可能的:
class AWSHandler:
@staticmethod
def do_a_job():
credentials = _get_credentials()
return _job_handler(credentials)
@staticmethod
def _get_credentials():
return credentials
@staticmethod
def _job_handler(credentials):
return result
这是可能的,但需要实例化一个对象:
class AWSHandler:
def do_a_job(self):
credentials = self._get_credentials()
return self._job_handler(credentials)
def _get_credentials(self):
return credentials
def _job_handler(self, credentials):
return result
【问题讨论】:
标签: python-3.x oop static-methods