私はDjangoのソースコードを調べることによってプロフェッショナルなコードを作成する方法を学んでいます。 django.urls.resolvers | Django documentation | Djangoでgetattr(object、 'name'、False)v.sl hasattr(object、 'name')
、それ読み取り:
class LocaleRegexProvider(object):
def describe(self):
description = "'{}'".format(self.regex.pattern)
if getattr(self, 'name', False):
description += " [name='{}']".format(self.name)
return description
Iはgetattr(self, 'name', False):
がより可読コードによってhasattr
hasattr(self, 'name')
exmapleについて
In [22]: if getattr(str,'split',False):
...: print("Str has 'split' attribute")
...: else:
...: print("Str has not 'split' attribute")
...:
Str has 'split' attribute
In [25]: if getattr(str,'sp',False):
...: print("Str has 'sp' attribute")
...: else:
...: print("Str has not 'sp' attribute")
...:
Str has not 'sp' attribute
を置換することができると仮定します0
hasattr
と思われます。
この点をカバーしていない比較については質問があります。 Python hasattr vs getattr - Stack Overflow
この場合、getattr()
を適用する方が良いでしょうか?