回答編集履歴
7
コメント補足
    
        answer	
    CHANGED
    
    | @@ -3,11 +3,11 @@ | |
| 3 3 | 
             
            ローカル変数ではなくインスタンス変数であることを明示するために self. を付けます。インスタンス変数になければクラス変数を探索します。
         | 
| 4 4 |  | 
| 5 5 | 
             
            ```python
         | 
| 6 | 
            -
            age = 1  # グローバル変数
         | 
| 6 | 
            +
            age = 1  # グローバル変数ageを定義して1を代入
         | 
| 7 7 | 
             
            class Person:
         | 
| 8 | 
            -
                age = 2  # クラス変数
         | 
| 8 | 
            +
                age = 2  # クラス変数ageを定義して2を代入
         | 
| 9 9 | 
             
                def __init__(self, name):  # nameはローカル変数
         | 
| 10 | 
            -
                    self.name = name       # インスタンス変数nameを | 
| 10 | 
            +
                    self.name = name       # インスタンス変数nameを定義してローカル変数nameを代入
         | 
| 11 11 | 
             
                def talk(self, name):
         | 
| 12 12 | 
             
                    print('local:', name)          # ローカル変数
         | 
| 13 13 | 
             
                    print('global: ', age)         # ローカル変数にないのでグローバル変数
         | 
6
コメント変更
    
        answer	
    CHANGED
    
    | @@ -7,7 +7,7 @@ | |
| 7 7 | 
             
            class Person:
         | 
| 8 8 | 
             
                age = 2  # クラス変数
         | 
| 9 9 | 
             
                def __init__(self, name):  # nameはローカル変数
         | 
| 10 | 
            -
                    self.name = name       # インスタンス変数name | 
| 10 | 
            +
                    self.name = name       # インスタンス変数nameを作ってローカル変数nameを代入
         | 
| 11 11 | 
             
                def talk(self, name):
         | 
| 12 12 | 
             
                    print('local:', name)          # ローカル変数
         | 
| 13 13 | 
             
                    print('global: ', age)         # ローカル変数にないのでグローバル変数
         | 
5
コメント変更
    
        answer	
    CHANGED
    
    | @@ -7,7 +7,7 @@ | |
| 7 7 | 
             
            class Person:
         | 
| 8 8 | 
             
                age = 2  # クラス変数
         | 
| 9 9 | 
             
                def __init__(self, name):  # nameはローカル変数
         | 
| 10 | 
            -
                    self.name = name       #  | 
| 10 | 
            +
                    self.name = name       # インスタンス変数nameにローカル変数nameを代入
         | 
| 11 11 | 
             
                def talk(self, name):
         | 
| 12 12 | 
             
                    print('local:', name)          # ローカル変数
         | 
| 13 13 | 
             
                    print('global: ', age)         # ローカル変数にないのでグローバル変数
         | 
4
インデント調整
    
        answer	
    CHANGED
    
    | @@ -7,7 +7,7 @@ | |
| 7 7 | 
             
            class Person:
         | 
| 8 8 | 
             
                age = 2  # クラス変数
         | 
| 9 9 | 
             
                def __init__(self, name):  # nameはローカル変数
         | 
| 10 | 
            -
                    self.name = name | 
| 10 | 
            +
                    self.name = name       # ローカル変数nameをインスタンス変数nameに代入
         | 
| 11 11 | 
             
                def talk(self, name):
         | 
| 12 12 | 
             
                    print('local:', name)          # ローカル変数
         | 
| 13 13 | 
             
                    print('global: ', age)         # ローカル変数にないのでグローバル変数
         | 
3
メソッド名変更、print追加
    
        answer	
    CHANGED
    
    | @@ -7,14 +7,15 @@ | |
| 7 7 | 
             
            class Person:
         | 
| 8 8 | 
             
                age = 2  # クラス変数
         | 
| 9 9 | 
             
                def __init__(self, name):  # nameはローカル変数
         | 
| 10 | 
            -
                    self.name = name | 
| 10 | 
            +
                    self.name = name    # ローカル変数nameをインスタンス変数nameに代入
         | 
| 11 | 
            -
                def  | 
| 11 | 
            +
                def talk(self, name):
         | 
| 12 12 | 
             
                    print('local:', name)          # ローカル変数
         | 
| 13 13 | 
             
                    print('global: ', age)         # ローカル変数にないのでグローバル変数
         | 
| 14 14 | 
             
                    print('instance:', self.name)  # インスタンス変数
         | 
| 15 15 | 
             
                    print('class:', self.age)      # インスタンス変数にないのでクラス変数
         | 
| 16 | 
            +
                    print(self.name, 'は', name, 'に話しかけた')
         | 
| 16 17 |  | 
| 17 | 
            -
            Person('Taro'). | 
| 18 | 
            +
            Person('Taro').talk('Hanako')
         | 
| 18 19 | 
             
            ```
         | 
| 19 20 |  | 
| 20 21 | 
             
            ```text:実行結果
         | 
| @@ -22,6 +23,7 @@ | |
| 22 23 | 
             
            global:  1
         | 
| 23 24 | 
             
            instance: Taro
         | 
| 24 25 | 
             
            class: 2
         | 
| 26 | 
            +
            Taro は Hanako に話しかけた
         | 
| 25 27 | 
             
            ```
         | 
| 26 28 |  | 
| 27 29 | 
             
            ---
         | 
2
説明追記
    
        answer	
    CHANGED
    
    | @@ -1,3 +1,31 @@ | |
| 1 | 
            +
            追記:
         | 
| 2 | 
            +
            Pythonでは、self. を付けない変数はメソッド(関数)のローカル変数です。ローカル変数になければグローバル変数を探索します。
         | 
| 3 | 
            +
            ローカル変数ではなくインスタンス変数であることを明示するために self. を付けます。インスタンス変数になければクラス変数を探索します。
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ```python
         | 
| 6 | 
            +
            age = 1  # グローバル変数
         | 
| 7 | 
            +
            class Person:
         | 
| 8 | 
            +
                age = 2  # クラス変数
         | 
| 9 | 
            +
                def __init__(self, name):  # nameはローカル変数
         | 
| 10 | 
            +
                    self.name = name       # ローカル変数nameをインスタンス変数nameに代入
         | 
| 11 | 
            +
                def print(self, name):
         | 
| 12 | 
            +
                    print('local:', name)          # ローカル変数
         | 
| 13 | 
            +
                    print('global: ', age)         # ローカル変数にないのでグローバル変数
         | 
| 14 | 
            +
                    print('instance:', self.name)  # インスタンス変数
         | 
| 15 | 
            +
                    print('class:', self.age)      # インスタンス変数にないのでクラス変数
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Person('Taro').print('Hanako')
         | 
| 18 | 
            +
            ```
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            ```text:実行結果
         | 
| 21 | 
            +
            local: Hanako
         | 
| 22 | 
            +
            global:  1
         | 
| 23 | 
            +
            instance: Taro
         | 
| 24 | 
            +
            class: 2
         | 
| 25 | 
            +
            ```
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            ---
         | 
| 28 | 
            +
             | 
| 1 29 | 
             
            それなら、クラスにするまでもなく、関数でいいですね。
         | 
| 2 30 |  | 
| 3 31 | 
             
            ```py
         | 
1
引数名修正
    
        answer	
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            それなら、クラスにするまでもなく、関数でいいですね。
         | 
| 2 2 |  | 
| 3 3 | 
             
            ```py
         | 
| 4 | 
            -
            def printName( | 
| 4 | 
            +
            def printName(name):
         | 
| 5 5 | 
             
                print("私は" + name + "です。")
         | 
| 6 6 | 
             
            ```
         | 
| 7 7 |  | 
