Rendering学習日記

日々、3DCGの世界は進歩しています。勉強して理解したことをまとめていきます。RenderMan互換レンダラーやグローバル・イルミネーション。いろんなことに好奇心を持って、面白くなる。目指せShader書き!!
ありがとうございます。

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

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