アカウント名:
パスワード:
print "0x" + hex(x) # hex()は整数の十六進表記文字列を返す組み込みメソッドx = 128
を実行すると、1行目でxが未定義というエラーになります。これは納得できますよね。
print f(128)f = lambda x: "0x" + hex(x) # lambdaで無名の関数オブジェクトを生成
を実行すると、1行目でfが未定義というエラーになります。これも納得できますよね。
defで関数を定義した
print f(128)def f(x): return "0x" + hex(x)
も同様に、1行目でfが未定義というエラーになります。それだけのことです。
あーー、これは困ったな。実は最初の1つと後の2つは違う事を言っています。
print "0x" + hex(x) # hex()は整数の十六進表記文字列を返す組み込みメソッドx = 128を実行すると、1行目でxが未定義というエラーになります。これは納得できますよね。
えー、この段階ですでに「納得できない」だったりします。あ、いや、Pythonがそういう言語だ、と言うのは判りました。でも、それは必ずそうならざるを得ない、と言うものではない。
例えば Perl ですと、(x ではなく $x と書く必要がありますし、hex()は変換方向が逆向きなんで sprintf を使いますが):
print "0x" . sprintf "%lx\n", $x; # hex()は整数の十六進表記文字列を返す組み込みメソッド$x = 128;
> でも、それは必ずそうならざるを得ない、と言うものではない。「あらゆるオブジェクトの前方参照は未定義エラーになる」というPythonの言語仕様にも相応に合理性があるんだから納得してくださいね、という話を「必ずそうならざるを得ない、と言うものでない」から納得できない、とすり替えて逃げますか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
前方参照はできません (スコア:1)
を実行すると、1行目でxが未定義というエラーになります。これは納得できますよね。
を実行すると、1行目でfが未定義というエラーになります。これも納得できますよね。
defで関数を定義した
も同様に、1行目でfが未定義というエラーになります。それだけのことです。
Re: (スコア:1)
あーー、これは困ったな。実は最初の1つと後の2つは違う事を言っています。
えー、この段階ですでに「納得できない」だったりします。あ、いや、Pythonがそういう言語だ、と言うのは判りました。でも、それは必ずそうならざるを得ない、と言うものではない。
例えば Perl ですと、(x ではなく $x と書く必要がありますし、hex()は変換方向が逆向きなんで sprintf を使いますが):
fjの教祖様
Re:前方参照はできません (スコア:1)
> でも、それは必ずそうならざるを得ない、と言うものではない。
「あらゆるオブジェクトの前方参照は未定義エラーになる」というPythonの言語仕様にも相応に合理性があるんだから納得してくださいね、という話を「必ずそうならざるを得ない、と言うものでない」から納得できない、とすり替えて逃げますか。