teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

コード変更

2019/11/29 09:07

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -9,8 +9,8 @@
9
9
  self.x = 123
10
10
 
11
11
  def main():
12
- print(vars(SampleClass()))
12
+ y = SampleClass()
13
- y = 456
13
+ print(vars(y))
14
14
  print(vars())
15
15
 
16
16
  if __name__ == '__main__':
@@ -21,5 +21,5 @@
21
21
 
22
22
  ```
23
23
  {'x': 123}
24
- {'y': 456}
24
+ {'y': <__main__.SampleClass object at 0x6ffffd106a0>}
25
25
  ```

4

引数を渡す例を追加

2019/11/29 09:07

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -4,8 +4,13 @@
4
4
  他に、globals() でグローバル変数辞書が見えます。・
5
5
 
6
6
  ```python
7
+ class SampleClass:
8
+ def __init__(self):
9
+ self.x = 123
10
+
7
11
  def main():
12
+ print(vars(SampleClass()))
8
- y = 123
13
+ y = 456
9
14
  print(vars())
10
15
 
11
16
  if __name__ == '__main__':
@@ -15,5 +20,6 @@
15
20
  実行結果:
16
21
 
17
22
  ```
18
- {'y': 123}
23
+ {'x': 123}
24
+ {'y': 456}
19
25
  ```

3

説明補足

2019/11/29 09:05

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -1,4 +1,7 @@
1
1
  vars() で変数辞書一覧が取れるけど、そういう話ではない?
2
+ vars関数の引数には変数辞書を取りたいオブジェクトを指定できます。
3
+ 引数を指定しないと locals() でローカル変数辞書が見えます。
4
+ 他に、globals() でグローバル変数辞書が見えます。・
2
5
 
3
6
  ```python
4
7
  def main():

2

不要説明削除

2019/11/29 09:00

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -1,5 +1,4 @@
1
1
  vars() で変数辞書一覧が取れるけど、そういう話ではない?
2
- 変数だけでなく、メソッドやobjectクラスが持つ変数も見えますけど。
3
2
 
4
3
  ```python
5
4
  def main():

1

実行結果修正

2019/11/29 08:57

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -13,5 +13,5 @@
13
13
  実行結果:
14
14
 
15
15
  ```
16
- {'y': 0}
16
+ {'y': 123}
17
17
  ```