python 的内置的字符串方法为什么有双下划线,如 __contains__?

python 的内置的字符串方法为什么有双下划线这种? 'aa'.__contains__('a')

回复
阅读 538
1 个回答

对 python 了解不多,可能不太严谨

__xxx__ 是魔术方法,就是说,除了像普通函数调用之外,还承担一些语言上功能

比如这个 __contains__ 就对应 in 关键字

'a' in 'aa' 就是调用这个 __contains__

也可以给类自定义这些方法

class C:
    def __init__(self, val):
        self.val = val
    def __contains__(self, ele):
        return ele == self.val

c = C(1)
print(1 in c) // True
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏