私がやっていることはより複雑ですが、私は問題を明確にするために簡単な例を示しました。私はすでにそれを定義した後に関数を呼び出そうとしています。Python 3.6関数は私の問題を引き起こし続けます
class rojas():
def get_avg_height(self, height):
height = {'Julian': 180, 'Aaron': 170, 'Bruno': 170, 'Julio': 175}
avg = (height['Julian'] + height['Aaron'] + height['Bruno'] + height['Julio'])/len(height)
return height
get_avg_height(self,height)
私のトレースバックがある:NameError: name 'self' is not defined
と私はそれが高さになったならば、高さがあまりにも「定義されていない」だろうと確信しています。
ありがとう、ありがとうございました。
これはコードの構造を正確に表していますか?あなたのエラーが予想されるためです。さらに、これはPythonでインスタンスメソッドを呼び出す方法ではありません。チュートリアルのメモ、またはレビューするクラスの[公式チュートリアル](https://docs.python.org/3/tutorial/classes.html)を参照してください。 – idjaw
あなたには2つの問題があります。ほとんどの場合、クラス定義後のオブジェクト*ではなく、クラス定義内で関数を呼び出そうとしています。より根本的に、ここでクラスを定義した理由は明確ではありません。メソッドは 'self'または引数' height'を使用しません。 – chepner
おそらく 'return avg'をしたいときに' height'を返すのですが、 'return'文を変更してください。 'get_avg_height'メソッドから' height'パラメータを削除してください。最後に、最後の行をインデント解除し、 'print rojas()。get_avg_height()' <これをデモンストレーション用に変更します。代わりに 'rojas'の新しいインスタンスを作成し、そのメソッドを呼び出す必要があります – davedwards