Pythonの変数の前にselfを加えない違い

477 ワード

class animal():
    def __init__(self):
        self.a = 5


class human():
    def __init__(self):
        a = 123

if __name__ == '__main__':
  animal = animal()
  print(animal.a)
  human = human()
  print(human.a)  # AttributeError: 'human' object has no attribute 'a'

animalクラスのインスタンス化後、このメソッドの属性、selfを呼び出すことができる.aはこのメソッドの属性を表し、インスタンス化時に呼び出すことができ、グローバル変数である.
humanインスタンス化後,selfは使用されないため,a変数はこの方法の変数の1つに相当し,局所変数である.