>>> a="hacker"
>>> a
'hacker'
>>> "a" in a
1
>>> "hac" in a
Traceback (most recent call last):
File "", line 1, in ?
TypeError: 'in ' requires character as left operand
とエラーが出てしまう。
日ごろ、python2.5を使っていて、
>>> a="hacker"
>>> "c" in a
True
>>> "hac" in a
True
が当たり前と思って、メタセコイアpythonで組もうとしたら、
TypeError: 'in
のエラーでした。
検索したら、ヒントがありました。ありがとうございます。
以下、python2.2のインタラクティブモードで
>>> class S(str):
... def __contains__(self,x):
... for i in range(len(self)):
... if self.startswith(x,i): return 1
...
>>> s=S("hacker")
>>> "ack" in s
1
>>> "tac" in s
0
助かります。ベスト尽くします。
ありがとうございます。
- -
- -