Pythonは常にインスタンスをインスタンスメソッドの最初の引数として渡します。これは、引数の数に関するエラーメッセージが1つずれているように見える場合があることを意味します。
class testclass:
def __init__(self,x,y):
self.x = x
self.y = y
self.test()
def test(self): ## instance method
print('test', self)
if __name__ == '__main__':
x = testclass(2,3)
クラスまたはインスタンスにアクセスする必要がない場合は、以下に示すようにstaticmethodを使用できます。
class testclass:
def __init__(self,x,y):
self.x = x
self.y = y
self.test()
@staticmethod
def test():
print('test')
if __name__ == '__main__':
x = testclass(2,3)
にアクセスする必要class
があるが、インスタンスにはアクセスできない場合、classmethodも同様です。
class testclass:
def __init__(self,x,y):
self.x = x
self.y = y
self.test()
@classmethod
def test(cls):
print('test', cls)
if __name__ == '__main__':
x = testclass(2,3)