- ベストアンサー
Pythonでの関数呼び出し
現在pythonでのプログラミングをしています。 例えば下のように関数を作るとglobal errorが発生します。 pythonでは引数で関数名を受け取らずに関数内から他の関数を呼び出すことはできないのでしょうか? よろしくお願いします。 ***************************************** def a(): b() def b(): print "test" a() *****************************************
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>になります。何かコード以外の所に問題があるのでしょうか・・・ 補足のスクリプトの最後なんですが、a()の呼び出しもクラス定義の中に 入れてしまうのですか? もしそうだとしたら、何をやりたくてそのように書くのでしょう。 質問者さんのやりたいことはこういうことではないのでしょうか? class_hoge(object): ____def_a(self): ________self.b() ____def_b(self): ________print_"hello" hoge().a()
その他の回答 (2)
- sakusaker7
- ベストアンサー率62% (800/1280)
>上記のコードをクラス内に記述した場合にエラーが発生するのでした 本当ですか? class hoge(object): def a(): b() def b(): print "test" とかすると確かにエラーにはなりますが、質問者さんの言うのとは 別のエラーのはずです。 確実に、質問者さんのおっしゃるエラーの起きるコードを提示してください。
補足
class Test(): def a(): b() def b(): print"test" a() になります。何かコード以外の所に問題があるのでしょうか・・・
- rinkun
- ベストアンサー率44% (706/1571)
とりあえず、質問のコードをファイルにコピーして全角空白を半角空白に置き換えたコードはPython2.5.2で動作しました。 Pythonのバージョンと、エラーの詳細をどうぞ。
補足
すみません、上記のコードをクラス内に記述した場合にエラーが発生するのでした global name 'b' is not definedと出ます Verは2.6.4です
補足
TurboGearsでアプリケーション開発をしようとしています。ご存知かもしれませんがTurboGearsではRootクラスが初めからあり、内部の関数とWebページが対応してるので実際には関数内からほか関数を呼び出します。その時に今回のエラーが発生していました。同じエラーが発生する例としてこのコードを載せています。 しかし、sakusaker7さんのコードを参考にさせてもらえば動かせそうです。今手元に実際の開発環境がないので明後日になりますが試してみたいと思います。