07/05/10 00:25:54
>>25
なんでいちいちclass_variable_get使ってんの?
(@@ABSTRACT_METHODS ||= []).concat(names)
@@ABSTRACT_METHODS.each
でいいじゃん。
128:デフォルトの名無しさん
07/05/26 22:43:10
ケンカするほど仲がいい
129:デフォルトの名無しさん
07/07/20 07:01:41
>>127
仮想クラスを2つ作りたい時のため。
直に扱うと個々のクラスじゃなくて親のクラスのクラス変数になってしまうみたいで
全ての仮想クラスで@@ABSTRACT_METHODSが共有されてしまう。
…ってもしかして 1.9.x ではならないのか?
130:デフォルトの名無しさん
07/07/20 07:10:49
久しぶりに覗いたついでに書き直しとく…
:@@ABSTRACT_METHODS 書き過ぎだよ、過去の俺
class AbstractMethodNotImplementException < Exception; end
module AbstractClass
def abstract(*symbols)
abstract_methods.push *symbols
end
def abstract_methods
sym = :@@ABSTRACT_METHODS
class_variable_set(sym,[]) unless class_variables.include?(sym.to_s)
return class_variable_get(sym)
end
def new(*args)
obj = super(*args)
abstract_methods.each do |sym|
raise(AbstractMethodNotImplementException, "abstract method `#{sym}' is not defined") unless obj.methods.include?(sym.to_s)
end
return obj
end
end
# sample
class MyAbstractA
extend AbstractClass
abstract :method_a
end
# class MyImplementedA < MyAbstractA
# def method_a; end
# end
MyImplementedA.new
131:デフォルトの名無しさん
07/07/20 07:13:40
ちなみに、get だけで使うとそれはそれで
uninitialized class variable になるよ。
132:デフォルトの名無しさん
07/07/20 09:48:11
VisualWorks7 でファイルアウトをマウス操作でなく実行命令として
記述するにはどうすればいいですか。
133:デフォルトの名無しさん
07/07/23 15:48:14
>>132
こういうのじゃ駄目なの?
| fileManager |
fileManager := SourceCodeStream write: NameOfClass printString, '.st' encoding: #Source.
fileManager timeStamp.
NameOfClass fileOutSourceOn: fileManager.
fileManager close
134:132
07/07/24 11:08:21
>>133
ありがとう。できました。あなたは神様です。
135:132
07/10/02 22:08:29
'aClass' という文字列から aClass というClassオブジェクトを取得するには
どうすればいいですか。
136:デフォルトの名無しさん
07/10/03 01:34:44
Compiler new evaluate: 'aClass' in: thisContext receiver: nil notifying: nil ifFail: []
137:デフォルトの名無しさん
07/10/03 06:27:35
cls = globals().get("aClass")
138:デフォルトの名無しさん
07/10/03 06:28:23
ってSmalltalkか。
139:デフォルトの名無しさん
07/10/03 11:33:48
>>135
そっか、aClassという名前のクラスを得たいのか。(ってそう書いてあるじゃんw)
そうならば137のRubyと同じ方針で、
Smalltalk at: 'aClass'
でおk。(136でもできるけどね)
老婆心ながら、クラス名は小文字ではじめないほうがいいと思います。
140:デフォルトの名無しさん
07/10/03 13:57:30
137はpythonだべ
141:デフォルトの名無しさん
07/10/03 17:03:57
がーん。w Ruby だと、
Object.const_get("AClass")
か。orz
142:132
07/10/05 01:12:53
ありがとうございました。みなさん
143:デフォルトの名無しさん
07/10/05 08:54:14
>>136 みたいなのを見ると Smalltalk は自然言語に近くて良いなあと思うけど、
英語が嫌いな人にはキツそうだね。
144:デフォルトの名無しさん
07/11/07 00:59:02
開発でC++使ってるとC++の勉強で手一杯になっちゃってsmalltalkまで手が回らん
145:デフォルトの名無しさん
07/11/07 23:53:23
そこをなんとかまわしてください。
146:デフォルトの名無しさん
07/11/07 23:55:23
ドリルは漢のロマン
147:デフォルトの名無しさん
07/11/13 08:38:49
>>144
smalltalkを先に勉強すればC++は勉強しなくても使える
148:デフォルトの名無しさん
07/11/13 19:45:21
C++ はテンプレートライブラリ用言語だから Smalltalk を
知っていても何の役にも立たないと思うけど
149:デフォルトの名無しさん
07/11/14 02:16:58
boost使うなら役に立たんこともない。けれど原則SmalltalkとC++はOOの考え方じたい別もの。
150:デフォルトの名無しさん
07/12/18 21:45:52
>>148
> C++ はテンプレートライブラリ用言語だから
ゲラ
151:デフォルトの名無しさん
08/03/09 08:25:05
smalltalkを先に勉強すればC++は怖くて使えないチキンになる。
152:デフォルトの名無しさん
08/03/09 18:41:12
と、smalltalkの読み書きもままならない151が言っております。
153:デフォルトの名無しさん
08/03/09 21:35:03
と、SmalltalkもC++も全然読めない&書けない151が言っております。
154:デフォルトの名無しさん
08/03/09 21:50:34
と、エロ本読みながらマスかいている俺が言ってみるテスト
155:デフォルトの名無しさん
08/03/30 12:00:36
age
156:デフォルトの名無しさん
08/03/31 17:48:13
>154
片手塞がっててもう片手もページめくってるのに、よく書けるな。
157:デフォルトの名無しさん
08/04/01 19:32:47
>>156
横にいる彼女に代筆してもらってる
158:デフォルトの名無しさん
08/04/01 23:46:45
漏れは彼女に筆をおろした
159:デフォルトの名無しさん
08/04/05 07:20:36
彼女がエロ本読んでる横でマスかきながら2chやってるか
彼女がマスかいてる横でエロ本読みながら2chやってるな
160:デフォルトの名無しさん
08/11/03 16:41:54
pythonの言語仕様には問題があると思う。
>>> a=1
>>> a.__str__
<method-wrapper '__str__' of int object at 0x00AB5670>
>>> a='abc'
>>> a.__str__
<method-wrapper '__str__' of str object at 0x00DB4FE0>
>>>
最初はint型として解釈されるけれど文字列を代入した時点でstr型になっている。
オブジェクト指向なのにBASICが抱えていた古典的な教訓がまるで生かされていないよ。
プロの現場が必要とする大規模開発でpythonが採用されるはずが無いのでは?
なのにデザインパターンを語っても意味はあるのだろうか?
デザインパターンの前に言語仕様そのものを見直すべきではないだろうか?
python好きの方には申し訳ないけど...
161:デフォルトの名無しさん
08/11/03 16:46:09
動的型付けを全否定w
162:デフォルトの名無しさん
08/11/03 16:48:48
追記します。
「a='abc'」をプログラマが実行してしまった時点で最初の「a=1」には二度とアクセスできない。
そう。a=1で生成されたインスタンスはゴミとしてメモリに残る訳だ。
gcの機能はあるらしいけれど...バグだらけ。
さっき試したらIDEが吹き飛んだよん。
163:デフォルトの名無しさん
08/11/03 16:51:42
動的型付けはいいと思うよん。利用者側にとって好都合だからね。
上記はあくまでも利用してみた感想さ。
悪く思わないで下さいね。
まだまだpythonは言語拡張の必要性はあると思う。
164:デフォルトの名無しさん
08/11/03 16:56:33
もう一言
a=1のインスタンスのメモリ番地は0x00AB5670
a='abc'のインスタンスのメモリ番地は0x00DB4FE0
表記はどちらもaだけれど別インスタンスです。
動的型付けではないですね。
165:デフォルトの名無しさん
08/11/03 17:05:40
なんという釣り針。
166:デフォルトの名無しさん
08/11/03 17:18:35
>>165
あなたになにがわかりますかね。
Pythonという言語の馬鹿さ加減を指摘しただけなんですけどね。
大学出てない人ですか。
167:デフォルトの名無しさん
08/11/03 17:30:38
大学出てないかどうかと、この件がどうかかわるのか皆目わからんな
168:デフォルトの名無しさん
08/11/03 17:31:13
>>160, 161-164です。
166の発言は私ではありません。
asm,CはOSやハードウェア(下位レイヤ)の性能を100[%]引き出せるように考えられたボトムアップアプローチだった訳です。
ハードウェアやOSリソースを100[%]効率よく使えるようにデザインされていた。
しかし、純粋オブジェクト指向言語はトップダウンアプローチ
つまり、理想ありきで下位レイヤの機能やリソース(OSやハードリソース)は使わない方針なんですよ。
そこんところを改善するべきだよね。標準modulesにDBへのアクセス機能がないのもチトどうかと思う。
折角お金をだして購入した機能やリソースは100[%]使い切りたい。
これって普通の人間の普通の希望じゃないだろうか?
まあ、こういった問題はpython使いが増えれば改善されるかな。
169:デフォルトの名無しさん
08/11/03 17:32:01
>>160, 161-164です。
166の発言は私ではありません。
asm,CはOSやハードウェア(下位レイヤ)の性能を100[%]引き出せるように考えられたボトムアップアプローチだった訳です。
ハードウェアやOSリソースを100[%]効率よく使えるようにデザインされていた。
しかし、純粋オブジェクト指向言語はトップダウンアプローチ
つまり、理想ありきで下位レイヤの機能やリソース(OSやハードリソース)は使わない方針なんですよ。
そこんところを改善するべきだよね。標準modulesにDBへのアクセス機能がないのもチトどうかと思う。
折角お金をだして購入した機能やリソースは100[%]使い切りたい。
これって普通の人間の普通の希望じゃないだろうか?
まあ、こういった問題はpython使いが増えれば改善されるかな。
170:デフォルトの名無しさん
08/11/03 17:35:09
>>169
> ハードウェアやOSリソースを100[%]効率よく使えるようにデザインされていた。
C言語でスタックやフラグレジスタにアクセスできないことに四苦八苦したことが
ある俺から言わせてもらうとこの時点でお前の俺様的空論なんだが。
171:デフォルトの名無しさん
08/11/03 17:37:13
>>160, 161-164です。
166の発言は私ではありません。
asm,CはOSやハードウェア(下位レイヤ)の性能を100[%]引き出せるように考えられたボトムアップアプローチだった訳です。
ハードウェアやOSリソースを100[%]効率よく使えるようにデザインされていた。
しかし、純粋オブジェクト指向言語はトップダウンアプローチ
つまり、理想ありきで下位レイヤの機能やリソース(OSやハードリソース)は使わない方針なんですよ。
そこんところを改善するべきだよね。標準modulesにDBへのアクセス機能がないのもチトどうかと思う。
折角お金をだして購入した機能やリソースは100[%]使い切りたい。
これって普通の人間の普通の希望じゃないだろうか?
まあ、こういった問題はpython使いが増えれば改善されるかな。
172:デフォルトの名無しさん
08/11/03 17:42:56
空論ですか...ならば
>>160, 161-164
に具体的にコメントしてくれよな。
もっともいざこざは面倒なので空論でも結構だけどさ。
ところで純粋に疑問なのですが、
>C言語でスタックやフラグレジスタにアクセスできないこと
pythonではスタックやフラグレジスタ(cpuリソース)に明示的にアクセスできるの?
ちょっと勉強させてくださいな。
173:デフォルトの名無しさん
08/11/03 17:47:19
天然物?まさか、な…
174:デフォルトの名無しさん
08/11/03 17:52:04
pythonはmac, solaris(cpuはsparcアーキテクチャ)でもliunx,windows(cpuはインテルアーキテクチャ)でも動くみたいだよ。
cpuアーキテクチャがまるで違うのにpythonではcpuリソースに一元的なアクセスが可能なの!?
無理だと思うけどなぁ~。
175:デフォルトの名無しさん
08/11/03 17:57:54
pythonのチュートリアルを見るとスタックやキューの話がサンプルで出てくるけれど、
これらはCPUの動作を真似たサンプルコードというだけで
本物のCPUリソースへアクセスしている訳ではないと思います...
まあ、いいや。
立場は違えどpythonというキーワードに触れるだけでもハイレベルな人たちだと思いますので
私から皆様へ敬意を表した上で退散させて下さいな。
176:デフォルトの名無しさん
08/11/03 18:12:10
天然かなこりゃ
177:デフォルトの名無しさん
08/11/03 18:12:15
たくさん釣り針を残して逃げたw
178:デフォルトの名無しさん
08/11/03 18:35:30
>>161
いや、静的型付けOOをも否定しているw
つーか、ポリモーフィズムの否定だwww
179:デフォルトの名無しさん
08/11/04 00:18:50
どうやら答えられないようですね。
はっきり答えを導ける人は2chにいなかったようですね。さみしいな。
180:デフォルトの名無しさん
08/11/04 00:56:07
んなこと言われても、何をどう答えていいのかわからんしな・・・
色々とトンチンカンというか、動的言語云々の前にOOP自体よくわかってないみたいだし。
181:デフォルトの名無しさん
08/11/04 01:47:04
>168 です。
python(パイソン)をいろいろと否定したような掲示をしたけれど
本当にダメな言語だと思っているならわざわざ言語仕様を調べたり勉強したりなんかしないぞ。
以下のURLを見て欲しい。Google Data APIにpython版が発表されている。
URLリンク(code.google.com)
Googleの技術者はGoogle Dataを普及させる為にpythonによるclientが強力な開発ツールになると判断しているんだ。
Google Data APIを利用できる言語としてJava, PHP, .NETなんかが採用されているみたいだよ。
ASMやCでは無理って事さ。
道具はその場その場で使い分けろって事なんだろうね。
先のURLからAPIをダウンロードするとデザインパターン with pythonの未来が見えるかもよ。
そこの君、俺は色々変な掲示をしてしまったけれど気を悪くしないでくれよな。
じゃあな!!
182:デフォルトの名無しさん
08/11/04 02:16:38
いいか、英語が読めないといい大人になれないぞ!
あとPythonを使ってる君!C++に切り換えるとか考えよう!
じゃあな!!
183:デフォルトの名無しさん
08/11/04 10:34:31
.| | | | | | | | | | || | |
.| | | レ | | | | | J || | |
∩___∩ | | | J | | | し || | |
| ノ\ ,_ ヽ .| レ | | レ| || J |
/ ●゛ ● | .J し | | || J
| ∪ ( _●_) ミ .| し J|
彡、 |∪| | .J レ
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
\ " / | |
\ / ̄ ̄ ̄ /
 ̄ ̄ ̄ ̄
184:デフォルトの名無しさん
08/11/04 12:39:00
なんなんだこのスレは(笑)
185:デフォルトの名無しさん
08/11/06 01:18:54
まぁ変な「掲示」だったということで
186:デフォルトの名無しさん
08/11/07 04:38:24
BASICの型付けとPythonの型付けは全然別物なんだがなあ…
VBのVariantに近い型付けをする言語って何だろ。あんまり知らないな。
187:デフォルトの名無しさん
08/11/08 13:10:06
>>186
Pythonの方でしょうか。
正直僕の小論に答えられないということを認めたほうがいいと思いますよ。
他の言語を引き合いに出して型付けが別物とか誰でも言えます。
188:デフォルトの名無しさん
08/11/08 13:22:29
>>187
URLリンク(ja.wikipedia.org)
189:デフォルトの名無しさん
08/11/08 19:32:28
>>188
そんな寄付によって成り立っています、みたいなバナーを出す詐欺サイトを出されても困りますよ
190:デフォルトの名無しさん
08/11/08 22:27:37
権威あるwikipediaを詐欺サイト呼ばわりとは...
善意の寄付で成立する詐欺サイト...
聞いたことねぇ。(^_^)
191:デフォルトの名無しさん
08/11/08 23:19:01
善意の寄付で成立する詐欺サイト... って
自分の親にオレオレ詐欺するようなもん?
192:デフォルトの名無しさん
08/11/08 23:27:04
wikipediaを権威あるとか言っちゃう男の人って・・・
193:デフォルトの名無しさん
08/11/09 00:54:10
>>191
死ぬ死ぬ詐欺
194:デフォルトの名無しさん
08/11/09 01:07:58
wikipediaより権威あるサイト
195:デフォルトの名無しさん
08/11/09 01:42:44
つまり、こうだ。
有志の方がんばって百科事典つくりましょう\(^o^)/
↓
便利な百科事典できました
↓
つぶしたくなかったら、寄付しろ
196:デフォルトの名無しさん
08/11/09 12:53:06
だから何。
何かを作る過程にはボランティアの人は寄ってきても、
長く辛いだけでしかないメンテに人はよってこないし、
成果物の恩恵に与る側からの寄付でメンテコスト捻出とか、
ごく普通のライフサイクルですが。
197:デフォルトの名無しさん
08/11/09 14:06:01
Wikipediaの情報をソースに取る馬鹿が大量にいるスレはここですか?
198:デフォルトの名無しさん
08/11/09 14:13:27
Wikipedia に書かれてる内容では判断できないので
レッテル貼りに終始するお前のような馬鹿ホイホイのためのスレですお
199:168
08/11/09 14:42:49
やはり答えを出せる人間はここにはいませんか、
やれやれ。
200:デフォルトの名無しさん
08/11/10 12:15:46
>>199
スレ違い
201:デフォルトの名無しさん
08/11/10 12:18:25
スレ違いつーか、カン違いつーか、アサッテっつーか、ナナメ上っつーか。
202:デフォルトの名無しさん
08/11/11 00:15:27
どもっ!
>>168を掲示したオリジナルです。( >>199とは別人です。 )
>>まあ、こういった問題はpython使いが増えれば改善されるかな。
で自己解決ですな。俺は168で答えは求めてないぜ。
要するにパイソンユーザが増えて下位レイヤのデバイスを表現するクラスがバンバン作られればパイソンの名も上がるだろうと思うよん。
その時にデザインパターンが活用されれば間違いないと思うよ。
203:デフォルトの名無しさん
08/11/11 01:20:37
よくわからんがboost.pythonとかctypesのことを言っているのか?
204:デフォルトの名無しさん
08/11/11 01:21:50
そうそう、最後に言い忘れてたっ!
パイソンを使い続けるとデザインパターンを学ぶ時に大変くろうするかな。
早めにJavaを初めて、パイソン捨てる事をおすすめしますよん。
ではでわっ!!
205:デフォルトの名無しさん
08/11/11 07:44:53
デザインパターンは動的型のほうが親和性が高いっつーか、
デザパタ自体がもともとSmalltalkから派生した考えだということ
知らないんだろうなあ・・・
206:デフォルトの名無しさん
08/11/11 09:07:33
> パイソンを使い続けるとデザインパターンを学ぶ時に大変くろうするかな
オートマ車に乗り続けるとクラッチ操作を忘れてしまうってことですね?
・・・本末転倒だろ・・・
207:デフォルトの名無しさん
08/11/11 09:45:12
むしろデザパタを、パターンとしてでなくメカニズムとして実装できたりもするけどな。
というか静的型言語厨でした、というオチですか。
208:デフォルトの名無しさん
08/11/11 10:22:14
>>207
C++使って糞コード書いている奴でもこんな変な事は書かない。
「処理系」というものが頭にない奴なんじゃないのかな。
PythonはPythonたるもので出来ているとかそう思い込んでいる。(pypyというプロジェクトはあるが。)
209:デフォルトの名無しさん
08/11/16 10:27:34
やはり、2chは馬鹿の塊のようすっ
いっとくけど俺は>>204書いてないぞ
しかし同意できるのはPythonの人たちはねちっこいから
何も言えなくなるってことだね。自分たちの知識不足についてまったく追えていない。
210:デフォルトの名無しさん
08/11/16 23:38:01
だってぼくあほやしー
211:デフォルトの名無しさん
08/11/17 01:02:56
>205
デザパタのうちのいくつかは「静的型で動的型っぽいことをする」ためのパターンでもあるしな。
212:デフォルトの名無しさん
08/11/27 16:38:16
初心者(python以外のプログラミング言語とか知らない、
書くのは何の役にも立たないような計算とかリストを返すプログラムのみ)
のおれが言うのも何だけど、pythonでOOとかパターンとかやる必要ないんじゃないの?
関数で書けばいいじゃん
関数でリストを返してlambdaするインタプリタを書けばいいんだよ
213:デフォルトの名無しさん
08/11/27 16:52:31
多分、ここの人達が想像できないくらいの初心者なので
とんちんかんなことを書いていると思うけど、
プログラムは世界を救うためにあるんだろう
人を幸せにするためにプログラマがいるんだろう
無意味な争いがしたいだけなら、ゲームでもやってろと思った
オブジェクト指向とかライブラリとかインターフェイスとかパターンに
囚われることが本当に世界救済につながるのかどうか考えてください。
おれはAppleIIみたいなのをpythonで作れるとか思っているほど知識に乏しいので
プログラムなどは使うだけで満足なんですよ、便利だし
それを作るのはあなた達です、頑張ってください。
214:デフォルトの名無しさん
08/11/30 00:04:26
パターンなんて知らなくてよい
215:デフォルトの名無しさん
09/01/01 14:11:46
2chで回答を得るためによく使われるもの
狩パターン
釣パターン
煽りパターン
初心者パターン
クレクレパターン