考虑以下(无意义的)最小示例:
class MyClass:
def __init__(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?
假设这里的鸭子类型是有意义的,那么实现
__len__
似乎更像python。我想知道如果我要重构这个,我能找到使用 pycharm(或任何其他 IDE 吗?)的用法。如果不是,那么 Pythonic 较少的版本似乎具有明显的优势。
我在pycharm中测试了你的例子,没有找到
__len__
的用法。
PyCharm 2023.1(社区版)Build #PC-231.8109.197