考虑以下(无意义的)最小示例:
class MyClass:
def __init__(self, some_list):
self._some_list = some_list
def __len__(self):
return len(self._some_list)
@property
def get_len(self):
return len(self._some_list)
instance = MyClass([1,2,3])
len(instance) # works
instance.get_len # works as well, but less pythonic?
假设duck类型在这里是有意义的,那么似乎实现__len__
更像是python。我想知道,如果我曾经重构这个,我可以找到使用pycharm(或任何其他IDE?)。如果不是,看起来不那么pythonic的版本有明显的优势。
1条答案
按热度按时间wpcxdonn1#
我在pycharm中测试了你的例子,没有发现
__len__
的用法。PyCharm 2023.1(社区版)内部版本号PC-231.8109.197