このコードがあるとします:
class ClassStyleA(object):
def FunctionA(self):
print "This is Style A."
class ClassStyleB(object):
def FunctionA(self):
print "This is Style B."
class InstanceStyleA(ClassStyleA):
def FunctionB(self):
print "This is also Style A."
InstanceStyleB = ClassStyleB()
たとえばFunctionA
、 fromを呼び出したい場合は、次のInstanceStyleA
ように入力する必要があります。
InstanceStyleA().FunctionA()
FunctionA
から呼び出したい場合はInstanceStyleB
、次のように入力する必要があります。
InstanceStyleB.FunctionA()
関数の 1 つを呼び出すには、後に一連の括弧を追加する必要がありInstanceStyleA
ます。そうしないと、次のエラーが発生します。
TypeError: unbound method FunctionA() must be called with InstanceStyleA instance as first argument (got nothing instead)
同様に、InstanceStyleB
関数の 1 つを呼び出すときにかっこを追加しようとすると、次のエラーが発生します。
TypeError: 'ClassStyleB' object is not callable
これはなぜですか?両方ともクラスのインスタンスである場合、なぜ扱いが異なるのでしょうか?