メソッドと関数の違いから始めることができますが、基本的にメソッドはあるオブジェクトに属し、関数はそうではありません。したがって、たとえば
def myFunction():
return "F"
class MyClass:
value = 0
def myMethod(self, value):
old = self.value
self.value = value
return old
myClassInstance = MyClass()
print myClassInstance.myMethod(3)
# 0
print myClassInstance.myMethod(33)
# 3
print myFunction()
# F
このメソッドはインスタンスにバインドされており、インスタンスが作成される前にメソッドを呼び出すことは意味がないことに注意してください。それを念頭に置いて、あなたの誤りはもっと理にかなっているはずです。このメソッドはインスタンスなしで呼び出すことはできません(自己)。これはメソッドの唯一の種類ではありません。たとえば、「静的メソッド」があります。静的メソッドはクラスで定義されていますが、インスタンスなしで呼び出されます。例:
class MyClass:
@staticmethod
def myStaticMethod():
return "static method"
# Consider using an instance attribute instead of a class attribute
def __init__(self):
self.instance_attribute = MyClass.myStaticMethod()
# Or if you need a class attribute it needs to go outside the class block
MyClass.class_attribute = MyClass.myStaticMethod()
問題の本文にエラー全体を入れるとよいでしょう。 –
これは 'MyClass'にクラス属性を設定します。私はこれがあなたがしたいことではないと確信しています。そのコードの文脈を説明してください。そうすれば、正しい方法でアドバイスすることができます。 –
また、私の目を傷つけるメソッド名のPEP8、camelCaseを見てください(はい、私はPEP8ナジーです)。 –