• ベストアンサー

Pythonでの関数呼び出し

現在pythonでのプログラミングをしています。 例えば下のように関数を作るとglobal errorが発生します。 pythonでは引数で関数名を受け取らずに関数内から他の関数を呼び出すことはできないのでしょうか? よろしくお願いします。 ***************************************** def a():   b() def b():   print "test" a() *****************************************

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

>になります。何かコード以外の所に問題があるのでしょうか・・・ 補足のスクリプトの最後なんですが、a()の呼び出しもクラス定義の中に 入れてしまうのですか? もしそうだとしたら、何をやりたくてそのように書くのでしょう。 質問者さんのやりたいことはこういうことではないのでしょうか? class_hoge(object): ____def_a(self): ________self.b() ____def_b(self): ________print_"hello" hoge().a()

0x123456
質問者

補足

TurboGearsでアプリケーション開発をしようとしています。ご存知かもしれませんがTurboGearsではRootクラスが初めからあり、内部の関数とWebページが対応してるので実際には関数内からほか関数を呼び出します。その時に今回のエラーが発生していました。同じエラーが発生する例としてこのコードを載せています。 しかし、sakusaker7さんのコードを参考にさせてもらえば動かせそうです。今手元に実際の開発環境がないので明後日になりますが試してみたいと思います。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

>上記のコードをクラス内に記述した場合にエラーが発生するのでした 本当ですか? class hoge(object):   def a():     b()   def b():     print "test" とかすると確かにエラーにはなりますが、質問者さんの言うのとは 別のエラーのはずです。 確実に、質問者さんのおっしゃるエラーの起きるコードを提示してください。

0x123456
質問者

補足

class Test():   def a():     b()   def b():     print"test"   a() になります。何かコード以外の所に問題があるのでしょうか・・・

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

とりあえず、質問のコードをファイルにコピーして全角空白を半角空白に置き換えたコードはPython2.5.2で動作しました。 Pythonのバージョンと、エラーの詳細をどうぞ。

0x123456
質問者

補足

すみません、上記のコードをクラス内に記述した場合にエラーが発生するのでした global name 'b' is not definedと出ます Verは2.6.4です