回答編集履歴
7
コメント補足
test
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
コメント変更
test
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
コメント変更
test
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
インデント調整
test
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をインスタンス変数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追加
test
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
説明追記
test
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
引数名修正
test
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
|
|