__contains__语法

Ric*_*ckD 5 python

我编写了一个python程序,它使用contains 语法的多个实例来查看字典和列表.

if not test_map[var].__contains__(string):
Run Code Online (Sandbox Code Playgroud)

似乎我会更好地使用:

if string not in test_map[var]:
Run Code Online (Sandbox Code Playgroud)

有谁知道使用该__contains__方法可能出现的问题?

谢谢,

unw*_*ind 13

这非常非常难看.

如果将来更改语义,直接使用实现而不是使用实际的预期顶级语法也会对您造成伤害.此外,它使代码更难理解和解释.

很有可能成为一名称职的Python程序员而不知道引擎盖下的in用途__contains__().我要求的反面并非如此.

  • 在_和_之后加双下划线表示不稳定的“私有”接口的注释不准确。前后的双倍表示“魔术”方法,即核心协议。这些往往非常稳定。之前(但之后)的下划线表示软“受保护”属性,而在之前(但之后)的下划线则执行“名称修改”以将其标记为“私有”。我对两者都说轻声,因为Python不强制使用这种用法,这只是约定。 (2认同)