<< 初音ミクをレンダリング その4 戻る 直線の始点、終点の座標を求める >>

Metasequoia PythonのバージョンはPython2.2

だから、python2.2のインタラクティブモードで

>>> 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 ' requires character as left operand
のエラーでした。
検索したら、ヒントがありました。ありがとうございます。
以下、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

助かります。ベスト尽くします。
ありがとうございます。
  • -
  • -

<< 初音ミクをレンダリング その4 戻る 直線の始点、終点の座標を求める >>