[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 12:08 / Filesize : 69 KB / Number-of Response : 338
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part31



1 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:44:57 ]
Pythonオフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
まとめWiki
python.rdy.jp/
関連スレ
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
pc11.2ch.net/test/read.cgi/tech/1226830195/

2 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:46:20 ]

┌──────────────────┐
|                              |
│            _  ∩             |
│          ( ゚∀゚)彡 おっぱい!     |
│          (  ⊂彡   おっぱい!    .|
│           |   |            |
│           し ⌒J              |
│                              |
│         Now Oppaing. ....          .|
│                              |
│   そのままおっぱいでお待ちください。  |
|                              |
└──────────────────┘

3 名前:デフォルトの名無しさん [2009/01/02(金) 00:06:47 ]
ペニス

4 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 00:14:20 ]
>>1
おつぱいそん

5 名前:!omikuji !dama mailto:sage [2009/01/02(金) 05:14:01 ]
乙py

6 名前:初心者 mailto:sage [2009/01/02(金) 08:55:53 ]
パイパン初心者です。こんなスレがあるなんて今日初めて知りました。


7 名前:初心者 mailto:sage [2009/01/02(金) 13:50:22 ]
Rubyこそが史上最強の言語であると思ってますが、パイパンがんばります!

8 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 17:00:37 ]
>>7
そうだね、ハルマゲドンはすぐそこまで来ているよね。

9 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 17:37:39 ]
またruby厨の自演がはじまった

10 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 18:29:45 ]
>>1
おっぱいそん!



11 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 21:24:05 ]
>>1
π乙

12 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 21:41:13 ]
刑務所でも使えるRubyに感謝

13 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 22:52:59 ]
だれか、pythonのスクリプトを難読化する
ツールを僕に紹介してちょんまげ

14 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 23:12:04 ]
誰もお前の糞なスクリプトなんて読まないから安心汁

15 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 23:46:31 ]
つ perl

16 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 00:25:01 ]
つ Grass

17 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 01:17:47 ]
.pyc

18 名前:デフォルトの名無しさん [2009/01/03(土) 02:09:00 ]
python -m py_compile
python -m compileall


何か面倒な事をしたいのなら、

def encode_src(src):
print("""exec '''%s'''.decode('base64')""" % src.encode('base64'))

encode/decodeは必要に応じてcompile,marshal他を組み合わせる。

19 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 02:12:42 ]
>>18の訂正
execも関数になるんだっけ。exec -> exec(...)

20 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 02:24:15 ]
他に、codec使う方法もある。

# -*- coding: rot13 -*-

cevag('Uryyb, jbeyq!')



21 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 04:05:31 ]
>>> class a:
... hoge=2
... def hage(self, x):
... self.hoge=x
... def fuga(self, y):
... return self.hoge
...
>>> vars()['a'].__dict__
{'__module__': '__main__', 'fuga': <function fuga at 0x00930DF0>, 'hage': <funct
ion hage at 0x00930CF0>, '__doc__': None, 'hoge': 2}
>>> vars()['a'].hoge
2
>>> vars()['a'].__dict__['hoge']
2
>>> i=vars()['a']
>>> i.fuga(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method fuga() must be called with a instance as first argumen
t (got int instance instead)
>>> i=vars()['a']()
>>> i.fuga(0)
2
>>> i=vars()['a']
>>> j=i()
>>> j.hoge
2
>>> j.fuga(0)
2
>>> j.__dict__
{}
生成されたインスタンスからメンバやメソッド情報を得るにはどうすればよいですか

22 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 05:18:43 ]
j.__class__.__dict__

23 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 07:51:16 ]
dir
inspect.getmembers

24 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 08:03:27 ]
__class__.__dict__ にある関数はインスタンスと関連付けされてない点に注意。
a.__dict__['fuga'](j, 0) # 引数 self にあたる部分を自分で渡す必要がある
恐らくやりたいことは、dir(instance) で調べて、getattr(j, 'fuga')(0)



25 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 08:42:00 ]
dir だと余計なメンバも混ざってくる。
__class__.__dict__だと親クラスの情報が含まれない。

メソッドのみを調べる場合は、
[name for name,boundmethod in inspect.getmembers(instance, inspect.ismethod)]
メンバを含める場合は第二引数を省略。
[name for name,boundmethod in inspect.getmembers(instance) if not name.startswith('__') and not name.endswith('__')]



26 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 09:13:18 ]
>>> j.__class__.__dict__['hoge']
2
>>> j.__class__.__dict__['fuga'](0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: fuga() takes exactly 2 arguments (1 given)
>>> j.__class__.__dict__['fuga'](j, 0)
2
>>> j.hoge=9
>>> j.__class__.__dict__['fuga'](j, 0)
9

できました
ありがとうございました
もっと勉強してみます

27 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 09:31:48 ]
>>> class b(a):
... hige=3
... def fuga(self, x):
... return self.hoge + x
>>> class a:
... hoge=2
... def hage(self, x):
... self.hoge=x
>>> aa=a()
>>> bb=b()
>>> aa.__class__.__dict__
{'__module__': '__main__', '__doc__': None, 'hage': <function hage at 0x00930D70>, 'hoge': 2}
>>> bb.__class__.__dict__
{'__module__': '__main__', 'fuga': <function fuga at 0x00930D30>, 'hige': 3, '__doc__': None}
>>> dir(aa)
['__doc__', '__module__', 'hage', 'hoge']
>>> dir(bb)
['__doc__', '__module__', 'fuga', 'hage', 'hige', 'hoge']
>>> import inspect
>>> inspect.getmembers(aa)
[('__doc__', None), ('__module__', '__main__'), ('hage', <bound method a.hage of <__main__.a instance at 0x00934738>>), ('hoge', 2)]
>>> inspect.getmembers(bb)
[('__doc__', None), ('__module__', '__main__'), ('fuga', <bound method b.fuga of <__main__.b instance at 0x009347B0>>), ('hage', <bound method b.hage of <__main__.b instance at 0x009347B0>>), ('hige', 3), ('hoge', 2)]
>>> [name for name,boundmethod in inspect.getmembers(aa, inspect.ismethod)]
['hage']
>>> [name for name,boundmethod in inspect.getmembers(bb, inspect.ismethod)]
['fuga', 'hage']
>>> [name for name,boundmethod in inspect.getmembers(aa) if not name.startswith('__') and not name.endswith('__')]
['hage', 'hoge']
>>> [name for name,boundmethod in inspect.getmembers(bb) if not name.startswith('__') and not name.endswith('__')]
['fuga', 'hage', 'hige', 'hoge']

28 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 12:20:06 ]
もしかしてpythonのソースをYAMLだけで書いて
exec使わずに実行とか出来るんですか

29 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 18:02:59 ]
>>28
exec使わずに実行て?

普通、言語のインスペクトではメソッドの中身とか取れないのが普通。
JavaScriptはソースが見れたっけ?

Pythonでの話に戻すけど、ソースコードをparserモジュールで構文木にして、
その構文木をソースとして実行とかできるのかな。やってみたことないけど。

30 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 18:10:04 ]
rubyなら出来ますよ



31 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 18:12:40 ]
そうだね、神の名はエホバだね。

32 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 19:02:45 ]
はあ?

33 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:37:30 ]
今、下記のようなリストがあり、
list1 = ['cat', 'dog', 'spam', 'egg']
下のマップで上記リストを変換したいと思います。
maps = {'animal': ['cat', 'dog']}
結果は以下を期待しています。
['animal', 'animal', 'spam', 'egg'](あるいは、set(['animal', 'spam', 'egg'])
その際、安直に上記を実装した、下のようなコードが思いつきました。
下のコードをmap関数やセット、lambda関数などなんでもいいので標準関数等を駆使して、とにかく短く表現できないか考えています。下記のコードはスマートな方でしょうか?

ans = []
for elem in list1:
for key, vals in maps.items():
if elem in vals:
ans.append(key)
else:
ans.append(elem)
print ans
さらに、マップの要素が増えた場合、
maps = {'animal': ['cat', 'dog'],'food':['egg']}
他に、list1 = ['animal', 'spam', 'egg']
をもとにmaps = {'animal': ['cat', 'dog']}を用いて、元が復元できないか考えています。
>> ['cat','dog','spam', 'egg']
どなたかわかりますでしょうか?


34 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:39:01 ]
改行がくずれたので、、、

ans = []
for elem in list1:
  for key, vals in maps.items():
    if elem in vals:
      ans.append(key)
    else:
      ans.append(elem)
print ans


35 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:50:26 ]
>>33
変換したい方向とmapsのデータの持ち方が逆なので意図がちょっと分かりにくかった

list1 = ['cat', 'dog', 'spam', 'egg']
maps = {'animal': ['cat', 'dog']}

reverse_maps = dict((x, key) for key, xs in maps.iteritems() for x in xs)
print [ reverse_maps.get(x) or x for x in list1 ]

こういうことでいいのかな?

36 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 22:08:25 ]
>>35
やばい。目から鱗どころじゃないっす。。
マップをつくるなんて、、。
しかも、以前valuesだったものをkeyにして、、なんて思いも浮かばなかった。
ありがとうございます!
しかし、実質1行とは。。予想以上でした。

これより最短はないですね。
ありがとうございます!

37 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 22:29:30 ]
def foo(l, i, k):
l[i] = k
for k, v in maps.items():
for w in v:
if list1.count(w):
foo(list1, list1.index(w), k)
print(list1)
for k, v in maps.items():
for w in v:
if list1.count(k):
foo(list1, list1.index(k), w)
print(list1)


初心者なので腕試しのつもりで書きました
かなり行数使ってますが

38 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 22:30:11 ]
>>35
コードもらいました
これで逆変換

list1 = ["cat", "dog", "spam", "egg"]
maps = {"animal": ["cat", "dog"]}

transpose = lambda mps: dict((x, key) for key, xs in maps.iteritems() for x in xs)
transform = lambda lst, mps: [item in mps.keys() and mps[item] or item for item in lst]
itransform = lambda lst, mps: sum([item in mps.keys() and mps[item] or [item] for item in lst], [])

#>>> import trans
#>>> m = trans.transpose(trans.maps)
##>>> trans.transform(trans.list1, m)
#['animal', 'animal', 'spam', 'egg']
#>>> s = set(trans.transform(trans.list1, m))
#>>> trans.itransform(trans.list1, trans.maps)
#['cat', 'dog', 'spam', 'egg']



39 名前:37 mailto:sage [2009/01/03(土) 22:31:06 ]
一行で書けるのか
代入せずに新しくリストを作ればいいのか
勉強になるなあ

40 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 22:34:06 ]
ああー 最後はtrans.list1じゃなくてs



41 名前:38 mailto:sage [2009/01/03(土) 22:38:56 ]
transpose関数ももmapsではなくmpsですねサーセン

42 名前:37 mailto:sage [2009/01/03(土) 22:41:40 ]
カウントとか効率悪そうだし
foo関数定義した意味がわからないな
駄コード書いて反省してます
すみませんでした

43 名前:37 mailto:sage [2009/01/03(土) 22:59:21 ]
ちょっと増やすだけで破綻するし
駄目すぎるな


44 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:28:11 ]
setでよかったのか
考えて損した
一から勉強し直そう

45 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 01:04:26 ]
>>27
細かいとこだけど。それだと class b(a) の後に class a を定義しているので
偶然前に定義した class a が残っていただけで、意図したテストになっていないはず。
後、クラス名はなるべく頭に大文字を使おう。

hige, hoge はクラス変数になっているので、
fuga をインスタンス作らずに呼び出したいなら、@classmethod
インスタンス変数にしたい場合コンストラクタ(__init__メソッド)内でhige,hogeを作る。



46 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 01:49:36 ]
なんぞこれ

47 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:56:38 ]
>>29
JavaScriptは実装依存じゃないかな。toSourceとかunevalがあったよーな気がする。
Pythonだとinspect.getsoruce

>構文木をソースとして実行
構文木もコンパイルしたコードオブジェクトも実行可能。ただ、実行には結局exec/evalを使うので
構文木を弄るのでなければわざわざ変換する利点はない。see also compiler.ast, ast.parse
少し敷居は高いけど、Pythonはこの辺の標準モジュールは充実してる。

>>28
"exec を使わずに"がどういう意図なのかわからないけど、
単に字面通りなら、じゃあevalで?って話しだし。
副作用を気にしていて実行環境を分離したいのなら

>>> d = {'a': 1}
>>> exec "a = 10" in d
>>> d['a']
10

より確実にするなら、別プロセス立ち上げてsocketやpipe等で -> Rpyc等のライブラリを使う。

ところで、YAML内にPythonのソース書くって
インデントがどっちの言語のものか混ざって解らなくなったりしない?
(書いたことないけど

48 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:22:53 ]
>>38
item in maps.keys() は、item in maps の方が推奨されてる。
でも、この場面なら get メソッドの第2引数を使う方がいい。
item in maps.keys() and maps[item] or item -> maps.get(item, item)

49 名前:38 mailto:sage [2009/01/04(日) 03:32:08 ]
>>38
ありがとう
知りませんでした

50 名前:38 mailto:sage [2009/01/04(日) 03:33:58 ]
ああー
>>48ですー



51 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:51:01 ]
効率無視 && mapsのkeysと各要素間に重複がない場合限定で。
mapsをtransposeせずに探索。見つかってもまだ探索・・・。

[reduce(lambda x,(y,z): y if x in z else x, maps.iteritems(), i) for i in list1]

52 名前:デフォルトの名無しさん [2009/01/04(日) 05:41:17 ]
くだらないコードばっかだな

53 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 10:28:37 ]
掲示板作ったよ。
なんかホールとか発見したら教えてね。
しばらくしたら忘れてね。
rail.s4.pf-x.net/bbs/

54 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:54:39 ]
161さんごぶさたです

55 名前:デフォルトの名無しさん [2009/01/04(日) 13:01:07 ]
a = (
{'a':'b'}
)

for row in a:
print row

これだと、{'a','b'}でなく、'a'が表示されます。

a = (
{'a':'b'},
)

これだと、ちゃんと{'a':'b'}と表示されます。
これは何故でしょうか?

56 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 13:09:38 ]
pythonでは1要素のタプルを記述するには
(x,)のように末尾のカンマが要るんだよ

>>> (1+2)*3
9
>>> (1+2,)*3
(3, 3, 3)

上の式のカッコがタプルだと思われても困るだろう?


57 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 13:18:48 ]
なるほど
ありがとうございました

58 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 14:21:36 ]
a = ({'a':'b'})*3
print a
a = ({'a':'b'},)*3
print a


59 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 15:38:05 ]
>>5
for i in dict
は、for i in dict.keys()と同じだから。

60 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 16:43:35 ]
┏━━━━━━━━━━━━━━━━━━━━━┓
┃ ━ ╋━╋ ╋┓┏┓ ┳┻┳┏━   ┣━┳━ ┃
┃ ━ ┏┳┓ ┃┃┗┛ ┻━┻┃     ┃  ┃   ┃
┃ ━ ┗╋┛  ┏━┓    ┃  ┣┳   ┏━╋━ ┃
┃ ━ ━╋━  ┣━┫  ━╋━┃┃   ┃  ┃   ┃
┃┏┓━╋━  ┣━┫  ┏╋┓┃┃ ━┻━╋━ ┃
┃┃┃  ┃    ┗━┛  ┃┃┃┃┃       ┃   ┃
┃┗┛━┻━ ━┛┗━ ┃┃┃┃┃       ┃   ┃
┗━━━━━━━━━━━━━━━━━━━━━┛
            ∩
            〈〈〈 ヽ
           〈⊃  }
   (\___/)  |   |
 ( ̄l▼      ̄)!   !
  /  ●   ● |   /
  /   l ___\lミ/
 /▲  (  。--。 )
/■___  (( ̄))    新年あけましておめでとうございますーーっ!
(___)   ̄/
               2009年 元旦



61 名前:デフォルトの名無しさん [2009/01/04(日) 17:06:59 ]
>>59嘘をかかないでください。for item in {'a':'b'}: は、'a':'b'を取り出した後自動的に'a'に加工してくれるんです

62 名前:デフォルトの名無しさん [2009/01/04(日) 19:39:07 ]
pythonのソースコードをsjisで書いても問題ないでしょうか?
日本語はu"ほげ"で書くので、
他言語で発生するような文字化け問題は発生しないのではと思うのですが
そのあたりどうでしょうか

63 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 19:43:58 ]
俺はいつもsjisで書いてるよ。

64 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 19:54:22 ]
for item in dict と for item in dict.keys() が同じになるのは、正確には 3.0 から。
2.x では dict.keys()はキーのリストを作って返すので、同じになるのは dict.iterkeys()。

でも >>61 は解らない。バイトコードで?それともC関数内で?
自動的に加工してくれるという根拠とかどこにあるのか、よければ教えてください。

65 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 19:57:14 ]
サブクラスがオヤクラスの名前を知るにはどうすればいいのでしょうか?

class Tuple3:
  def __init__(self, arg):
    if isinstance(arg, Tuple3):
      print 'ok'
    else:
      print 'ng'
class Vector3(Tuple3):
   def __init__(self, arg):
     Tuple3.__init__(self, arg)

と、あったとき、
vec = Vector3() --> 'ng'
vec2 = Vector3(vec)
とやった時、'ok'と表示させる事はできますか?

親クラスコンストラクタで、isinstance(arg, Vector3)と直接書けばいいのはわかるのですが、
このやり方はしたくありません。

そんな事は可能ですか?





66 名前:デフォルトの名無しさん [2009/01/04(日) 20:01:21 ]
必要なくね?

67 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 20:10:57 ]
>>62
自分ひとりで同一環境で書いてる間は特に問題ない。

ブラウザからsvnレポジトリ内のソースを読む時、等
他のいろんな所とのやりとりを想定すると
ソース内には極力日本語を書かないようにするかutf-8に統一が無難。



68 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 20:31:54 ]
>>65
どういう用途なのかわからないけど、使えそうなものをとりあえず列挙すると
issubclass
Vector3.__bases__



69 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 20:35:36 ]
class Tuple3:
  def __init__(self, arg):
    if isinstance(arg, Tuple3):
      print 'ok'
    else:
      print 'ng'

これは

class Tuple3:
  def __init__(self, arg):
    if self.__class is Tuple3:
     print 'ok'
    else:
     print 'ng'

がいいんだろう

70 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 20:58:24 ]
main.py
/hoge/
- __init__.py
- test.py

をmain.py内で、

import hoge

した場合、test.pyはimportされないのですか?



71 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:05:05 ]
何に使うのかまだ解ってないけど、
やりたい事ってもしかして、コレ?

class Tuple3:
  def __init__(self, arg=None):
    if isinstance(arg, self.__class__):
      print "ok"
    else:
      print "ng"



72 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:06:47 ]
>>70
パッケージは、__init__.py内で明示的にimportしない限り、
import hogeでimportされるのは hoge/__init__.pyのみ。

73 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 23:21:00 ]
import hoge.test


74 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 23:44:04 ]
馬鹿ばっかり、ってことが証明されたなあ、このスレ。

75 名前:デフォルトの名無しさん [2009/01/04(日) 23:59:00 ]
馬鹿ばっかり、ってことが証明されたなあ、このスレ。

76 名前:デフォルトの名無しさん mailto:http://rail.s4.pf-x.net/bbs/ [2009/01/05(月) 00:58:39 ]
真面目にやれ

77 名前:デフォルトの名無しさん [2009/01/05(月) 00:59:54 ]
姑息なことすんな

78 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:02:07 ]
くだすれの方が盛り上がってるな

79 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:24:52 ]
sageないし草いし死ねば良いのに

80 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:48:12 ]
2chで死ねは挨拶みたいなもんだ罠



81 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:32:13 ]
[ANN] PyYAML Python 3 対応

----
yaml_make.py
----
import os, sys, yaml
def make(target):
  makefile = os.path.join(os.getcwd(),'Makefile.yaml')
  exec (yaml.load(open(makefile))) in vars()
if __name__ == '__main__':
  make(sys.argv[1])

----
Makefile.yaml
----
hello: |
  print "Hello"

test: |
  print "Test"

PythonソースをYAML内に書くときのサンプル。
| がないと、関数・クラス定義する時に : が YAMLでの辞書のキー定義と解釈される。

82 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 09:40:31 ]
そういうのは公式言ってみるからどうでもいいよ

83 名前:デフォルトの名無しさん [2009/01/06(火) 04:37:22 ]
15-20% average speedup on pybench and pystone
bugs.python.org/issue4753

84 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 10:39:49 ]
numpyはsageに吸収されてしまうのだろうか

85 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 23:22:47 ]
年明け首吊り失敗して顔酷いことなってるよ俺。首にアザできて外でれねえw

86 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 23:44:14 ]
このご時世たくさん人をやとっちゃった会社は大変だね。
この状況で独立するバカは中央線を止めないようにね。

87 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:30:28 ]
ま、会社が潰れるのは虚業だったことの証明なんだろうけどね。

年末が一つの山だったみたいだな。
次は年度末の3月が山だと思うよ。

88 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:39:13 ]
コネない人間には虚業自体できないから
景気も関係ないんじゃないの

89 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 14:29:34 ]
有名なpythonistaって誰?

90 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 15:16:19 ]
guido



91 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 15:37:57 ]
>>90
それ神様

92 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 15:49:59 ]
Eric Steven Raymond
Peter Norvig


93 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 15:58:46 ]
Matz

94 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 16:00:20 ]
Ruby

95 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 19:36:53 ]
>>93,94
もしかして: David Mertz と Sam Ruby

96 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 19:57:01 ]
Tim Barners Lee

97 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 22:19:20 ]
Matz

98 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 22:32:14 ]
Notz

99 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 13:05:18 ]
日本人では

100 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 13:47:21 ]




101 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 00:03:14 ]
Jim Huguninは、pythonistaだと思う。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<69KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef