投稿練習(73, 0)
 メ-ル希望(3, 0)
 障害情報(18, 0)
 雑談(871, 0)
 業務報告(284, 0)
 VineseedにZope(623, 0)
 Zope27使おう(6, 0)
 ImgBBS(14, 0)
 メタボ(0, 0)
 会員専用(0, 0)
 ぼやき場所(27, 0)
 メモ(34, 0)
 eclipse(6, 0)
  

VineseedにZope

VineSeedにZope入れようという話

投稿画面の表示を 

検索文字 

お名前  EMail 
 左に表示されている数値を入力してください 


325 owa 2003年 3月20日 21時24分 Id=owa

>>315 そもそも__doc__ってなんの為にある?
1. pydoc 使って自動ドキュメントの為(これ以上はしらない)
2. Zope のオブジェクトは docstring を必要とする(仕様らしい↓)

http://www.zope.org/Documentation/Books/ZDG/current/ObjectPu***
* Publishable Object Requirements *
Zope has few restrictions on publishable objects.
The basic rule is that the object must have a doc string.
This requirement goes for method objects too.
と書いてあるのを見付けました。



324 owa 2003年 3月20日 21時16分 Id=owa

>>323 テクニカルリファレンスより引用(P36)
これは知らなかったので試してみました (ソース名はfunc.pyです)
--------
def aaa():
    """user func aaa"""

print aaa.__doc__
print aaa.func_doc
--------
こういう書き方もできるんですね(クラスの中の関数でも書けました)
でも今回の件とはちがうかなー
'%s__doc__' % entry_name はちょと置いておきます

>>317 class objectWapper(Wapper,c): pass
ここでどうして App/class_init.py まで飛んでいくのかまだ解かりません



323 kiyo 2003年 3月20日 8時29分 Id=kiyo

>>321 これが解かってないのですが

テクニカルリファレンスより引用(P36)
ユーザ定義関数(ここではf)
f.__doc__ / f.func__doc ドキュメンテーション文字列
となってます。説明はありませんが、ユーザ定義関数ですので、
**************
書き足しました:ユーザ定義関数とは、classの事なんですねぇ。間違ってました。
def __doc__(self): とか、def __getattr__(self):の事と思ってました御免なさい。
**************
------------
#
# f.py
#
class func(self):
  
 def __doc__(self):
  xxxx
-------
とした場合
f.__doc__ は f.func__docとも書けると言う事でしょうか?

PS:
# うーん、ちょっとオカシイですねぇ。
# こういう所を逃げないで、ちゃんとテストしないといけないのでしょう。

>>'sample__doc__' という属性を zope のどこかで設定しているってことなのでしょうか?
私も以前少し調べたのですが、
sampaleはLocalFSから呼ばれた場合file名のようですので、
ZPublisher/HTTPRequest.py

もしやっているなら、ココしかないと思いますが、、、
わかりませんでした。




322 owa 2003年 3月20日 0時39分 Id=owa

>>320 pythonを基礎からやりなおそうと思ってます
私もその口です。Pythonはインタープリタなのでとても変なこと?できてしまうようです。
そこが魅力だとも思いますが、コンパイラ型言語になれきった身ではやっぱり辛いです。




321 owa 2003年 3月20日 0時34分 Id=owa

>>320 テクニカルリファレンスにあるのですが
'%s__doc__' % entry_name
これが解かってないのですが、オブジェクト(entry_name)が sample だとして
'sample__doc__' という属性を zope のどこかで設定しているってことなのでしょうか?
# これ自分で調べます- これ後付け

>> Debud&Editerがもっと良い物があれば
デバッガは確かにきついですね。トレースしかできませんでした。
実行地点で、値や属性を調べようとしてもできませんでした。



320 kiyo 2003年 3月20日 0時19分 Id=kiyo

>>317
pythonを基礎からやりなおそうと思ってます。
そもそも、他の言語を多少かじっている関係で、基礎を飛ばしてしまってます。

今回その事がよく解かりました。
Debug&Editerがもっと良い物があれば、もう少しがんばったと思うけど(言い訳ですね)
>>doc = getattr(object, '%s__doc__' % entry_name, None)は理解不能
doc = getattr(object, '%s__doc' % entry_name, None)のような書き方なら、テクニカルリファレンスにあるのですが、、、

>>318 解からないことあったら教えてください。
Apacheは、hoihoi-pさんが詳しいですよー。



319 owa 2003年 3月20日 0時10分 Id=owa

>>315 # テクニカルリファレンスには、ドキュメンテーション文字列とある
僕も最初そういうものだと思ってました。ドキュメントを自動生成してくれるものだと。
$ pydoc *.py と試しに打ち込んだのは内緒です



318 owa 2003年 3月19日 23時31分 Id=owa

>>316 ミラーさせて頂きました
なんか、くすぐったいですね^^
Apache 立てようと思ったんですが、配置の関係でハブを買わないといけなくなって、ちょっと遅れそうです。
解からないことあったら教えてください。うまくいったらノートも繋いで、Zope27臨時サーバ立てるつもりです。



317 owa 2003年 3月19日 23時20分 Id=owa

>>315 そもそも__doc__ってなんの為にある?
これ、今の自分が答えるのとても難しいです。今日はパス(涙

>> objectに__doc__が無いと内容がないと判断する、と言う事でしょうか?
少なくとも正規のものではないと判断していると思います。次の行
doc = getattr(object, '%s__doc__' % entry_name, None)
は理解不能

>> 今回のclass objectWapper(Wapper,c): pass
これが問題で、このクラス定義のところにやってくると
lib/python/App/class_init.py の default_class_init__(self): メソッドまで飛びます
それから戻ってくると python2.1 では __doc__ があり、2.2 では無いのです。
それで、強引に docstring コードを突っ込んだわけで、結果オーライとなったようです。
ちなみに、class_init.py でなんか特殊なことやってるようには見えませんでした。

objectWapper(Wrapper, c) でクラス定義が多重継承になっていますが、
Wrapper は LocalFS 内の通常のクラスで、c が extension class と表示されます。
というわけで拡張クラスを含む多重継承がどうなるのかを調べることになりました。




316 kiyo 2003年 3月19日 17時13分 Id=kiyo

>>289 ミラーしてもらって一向にかまわないですよ

ご好意に甘えてミラーさせて頂きました。
左側の黄色部分「Vine+Zope(RPM)」→「owaZopeRPMで運用」に「ミラー」先あります。