|
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
|
Pythonでフィールドを定義するときに他言語と合わせて クラスブロックに入れてみた場合とコンストラクタに入れてみた場合を比較してみた。 i = 0
def func():
global i
i = i + 1
return i
class Person:
vals1 = func() #field define
def __init__(self):
print '[Person.__init__]'
self.vals2 = func() #costruct
print "finished compile."
func()
info = Person()
print info.vals1, info.vals2
del info
info = Person()
print info.vals1, info.vals2
結果
finished compile. [Person.__init__] 1 3 [Person.__init__] 1 4 どうやらクラスブロックにフィールドを指定したら、コンパイル時に プリプロセスされてしまってスカラーに変換されてるっぽい。 PR |
|
|
|
忍者ブログ [PR] |


