关于元组和字符串的Python新手澄清

Yut*_*a73 3 python string tuples magic-function slice

我刚刚了解到我可以使用以下命令检查子串是否在字符串中:

字符串中的子字符串

在我看来,字符串只是一种特殊的元组,其元素是字符.所以我想知道是否有一种直接的方法来搜索元组中的元组片段.元组中的元素可以是任何类型.

元组中的元组

现在我的第二个问题:

>>> tu = 12 ,23, 34,56
>>> tu[:2] in tu
False
Run Code Online (Sandbox Code Playgroud)

我认为我得到了假,因为(12,23)不是tu的元素.但是,为什么字符串中的子串会起作用?场景背后隐藏着语法糖吗?

Moi*_*dri 5

string不是一种类型tuple.事实上,两者都属于不同的阶级.将如何in评估语句是基于__contains__()各个类中定义的魔术函数.

阅读如何在python中设置contains方法,可能会发现它很有用.要了解Python中的魔术函数,请阅读:Python魔术方法指南