Personal tools

ああ,これこれ

http://groups.yahoo.com/group/zope/message/145449

このひととまったく同じ問題でZMILocalizerが動かないの。

手っ取り早く言うと,New Style Classではクラス自体の__dict__を勝手に書き換えると怒られる,ということね。ZODB 3.3でNew Style Classが使えるようになり,ExtentionClassがNew Style Classベースになった影響ですな。

こんなコードを書いて実験すると分かる。

New Style Classを使った場合

>>> class nsc(object):
...         pass
...
>>>
>>> nsc.__dict__['foo'] = 'foo'
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: object does not support item assignment

というようにエラーになります。

New Style Classでない場合

>>> class non_nsc:
...         pass
... 
>>>
>>> non_nsc.__dict__['foo'] = 'foo'

さて,どうしたものか。

しかしPythonは奥深いなあ。


追記。

__dict__をむりやり変えようとしないで,setattrするとOKだよとIRCの#zope-jaで教えてもらった(ありがとう!)。で,早速やってみると,なんということでしょう。今まで日本語化されていなかったZMIのタブが...!

その後MLにも同種の指摘があった。ということで,ZMILocalizerの2.8対応ということでCommit。2.7で動くことも確認済み。 http://sourceforge.jp/projects/zope-j10n/ からダウンロードして試してみてください。

Category(s)
zope
python
The URL to Trackback this entry is:
http://coreblog.org/ats/675/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
コメントスパム避けのための認証文字列です

Captcha Image

Pythonな求人
r = urlopen("http://www.webcore.co.jp/recruit")
About this blog
■Author


atsこと柴田淳です。Atsushiはガイジンにうまく発音して頂けないので,これからはJunというペンネームで行こうと思っていましたがあんまり使ってません。
Webcore株式会社 代表取締役
■TRIVIAL TECHNOLOGIES 2.0
トリビアル・テクノロジー 2.0,「トリテク 2.0」と呼んでください。
Blog(ブログ)サイトです。Plone上で動く,オープンソースのBlog Product - COREBlog2を使っています。
 
最近書いた本,Mook
みんなのPython Webアプリ編
Pythonの基礎から,Webアプリやフレームワークの仕組みまで,つまることなく一気に学べる書籍です。「みんなのPython」と一緒に読んでください:-)。
みんなのPython
Pythonの入門書です。基本的なことから分かりやすく解説するよう勤めました。Pythonをはじめたいと思っている人,JavaやC++,PerlやRubyを学ぼうと思って躓いてしまった人はぜひ読んで下さい。
 

Powered by Plone, the Open Source Content Management System