Python: Add variable scope example with subclass

This commit is contained in:
Rasmus Wriedt Larsen
2022-08-25 11:59:23 +02:00
parent 0e3d520712
commit 985e87ccde
6 changed files with 38 additions and 15 deletions

View File

@@ -1,13 +1,15 @@
| in_class.py:0:0:0:0 | Module in_class | Global Variable MyClass | in_class.py:5:7:5:13 | MyClass |
| in_class.py:0:0:0:0 | Module in_class | Global Variable MyClass | in_class.py:30:6:30:12 | MyClass |
| in_class.py:0:0:0:0 | Module in_class | Global Variable MyClass | in_class.py:33:6:33:12 | MyClass |
| in_class.py:0:0:0:0 | Module in_class | Global Variable MyClass | in_class.py:41:7:41:13 | MyClass |
| in_class.py:0:0:0:0 | Module in_class | Global Variable NameError | in_class.py:17:16:17:24 | NameError |
| in_class.py:0:0:0:0 | Module in_class | Global Variable bar | in_class.py:2:1:2:3 | bar |
| in_class.py:0:0:0:0 | Module in_class | Global Variable bar | in_class.py:14:15:14:17 | bar |
| in_class.py:0:0:0:0 | Module in_class | Global Variable foo | in_class.py:1:1:1:3 | foo |
| in_class.py:0:0:0:0 | Module in_class | Global Variable mc | in_class.py:30:1:30:2 | mc |
| in_class.py:0:0:0:0 | Module in_class | Global Variable mc | in_class.py:32:1:32:2 | mc |
| in_class.py:0:0:0:0 | Module in_class | Global Variable mc | in_class.py:35:7:35:8 | mc |
| in_class.py:0:0:0:0 | Module in_class | Global Variable mc | in_class.py:33:1:33:2 | mc |
| in_class.py:0:0:0:0 | Module in_class | Global Variable mc | in_class.py:35:1:35:2 | mc |
| in_class.py:0:0:0:0 | Module in_class | Global Variable mc | in_class.py:38:7:38:8 | mc |
| in_class.py:0:0:0:0 | Module in_class | Global Variable object | in_class.py:5:15:5:20 | object |
| in_class.py:0:0:0:0 | Module in_class | Global Variable object | in_class.py:30:15:30:20 | object |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:9:9:9:13 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:12:9:12:13 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:13:9:13:13 | print |
@@ -17,15 +19,19 @@
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:21:9:21:13 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:22:9:22:13 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:25:9:25:13 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:31:1:31:5 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:34:1:34:5 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:35:1:35:5 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:37:1:37:5 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:38:1:38:5 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:40:1:40:5 | print |
| in_class.py:0:0:0:0 | Module in_class | Global Variable print | in_class.py:41:1:41:5 | print |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable Sub | in_class.py:30:11:30:13 | Sub |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable baz | in_class.py:6:5:6:7 | baz |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable baz | in_class.py:16:19:16:21 | baz |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable baz | in_class.py:28:15:28:17 | baz |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable ex | in_class.py:28:5:28:6 | ex |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable foo | in_class.py:8:9:8:11 | foo |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable foo | in_class.py:13:15:13:17 | foo |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable foo | in_class.py:31:17:31:19 | foo |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable func | in_class.py:24:9:24:12 | func |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable func | in_class.py:28:10:28:13 | func |
| in_class.py:5:1:5:22 | Class MyClass | Local Variable use | in_class.py:11:9:11:11 | use |
@@ -35,6 +41,7 @@
| in_class.py:11:5:11:18 | Function use | Local Variable self | in_class.py:22:15:22:18 | self |
| in_class.py:24:5:24:18 | Function func | Local Variable arg | in_class.py:24:14:24:16 | arg |
| in_class.py:24:5:24:18 | Function func | Local Variable arg | in_class.py:25:27:25:29 | arg |
| in_class.py:30:5:30:22 | Class Sub | Local Variable stuff | in_class.py:31:9:31:13 | stuff |
| test.py:0:0:0:0 | Module test | Global Variable C | test.py:30:7:30:7 | C |
| test.py:0:0:0:0 | Module test | Global Variable base | test.py:30:9:30:12 | base |
| test.py:0:0:0:0 | Module test | Global Variable func0 | test.py:5:5:5:9 | func0 |

View File

@@ -1,5 +1,6 @@
| Local Variable baz | in_class.py:5:1:5:22 | Class MyClass | in_class.py:11:5:11:18 | Function use |
| Local Variable foo | in_class.py:5:1:5:22 | Class MyClass | in_class.py:11:5:11:18 | Function use |
| Local Variable foo | in_class.py:5:1:5:22 | Class MyClass | in_class.py:30:5:30:22 | Class Sub |
| Local Variable local2 | test.py:15:1:15:12 | Function func2 | test.py:17:5:17:23 | Function inner1 |
| Local Variable local4 | test.py:22:1:22:26 | Function func3 | test.py:24:5:24:22 | Function inner_outer |
| Local Variable local4 | test.py:22:1:22:26 | Function func3 | test.py:25:9:25:27 | Function inner2 |

View File

@@ -1,5 +1,5 @@
foo = "foo"
bar = "bar"
foo = "foo-text"
bar = "bar-text"
class MyClass(object):
@@ -10,8 +10,8 @@ class MyClass(object):
def use(self):
print("! use()")
print(foo)
print(bar)
print(foo) # foo-text
print(bar) # bar-text
try:
print(baz)
except NameError:
@@ -27,9 +27,15 @@ class MyClass(object):
ex = func(baz)
class Sub(object):
stuff = foo
mc = MyClass()
print()
mc.use()
print("\n! mc.ex")
print(mc.ex)
print("\n! MyClass.Sub.stuff")
print(MyClass.Sub().stuff) # foo-text

View File

@@ -2,6 +2,7 @@
| Local Variable .0 | test.py:48:12:48:29 | Function listcomp | fast |
| Local Variable .0 | test.py:52:5:52:25 | Function listcomp | fast |
| Local Variable Local | test.py:38:1:38:18 | Function func4 | fast |
| Local Variable Sub | in_class.py:5:1:5:22 | Class MyClass | name |
| Local Variable arg | in_class.py:24:5:24:18 | Function func | fast |
| Local Variable baz | in_class.py:5:1:5:22 | Class MyClass | name |
| Local Variable class_local | test.py:30:1:30:14 | Class C | name |
@@ -33,6 +34,7 @@
| Local Variable self | test.py:40:9:40:29 | Function meth_inner | fast |
| Local Variable seq | test.py:44:1:44:15 | Function func5 | fast |
| Local Variable seq | test.py:51:1:51:21 | Function use_in_loop | fast |
| Local Variable stuff | in_class.py:30:5:30:22 | Class Sub | name |
| Local Variable use | in_class.py:5:1:5:22 | Class MyClass | name |
| Local Variable v | test.py:51:1:51:21 | Function use_in_loop | fast |
| Local Variable v | test.py:52:5:52:25 | Function listcomp | fast |

View File

@@ -17,12 +17,17 @@
| in_class.py:25:27:25:29 | ControlFlowNode for arg | local |
| in_class.py:28:10:28:13 | ControlFlowNode for func | local |
| in_class.py:28:15:28:17 | ControlFlowNode for baz | local |
| in_class.py:30:6:30:12 | ControlFlowNode for MyClass | global |
| in_class.py:31:1:31:5 | ControlFlowNode for print | global |
| in_class.py:32:1:32:2 | ControlFlowNode for mc | global |
| in_class.py:30:15:30:20 | ControlFlowNode for object | global |
| in_class.py:31:17:31:19 | ControlFlowNode for foo | global |
| in_class.py:33:6:33:12 | ControlFlowNode for MyClass | global |
| in_class.py:34:1:34:5 | ControlFlowNode for print | global |
| in_class.py:35:1:35:5 | ControlFlowNode for print | global |
| in_class.py:35:7:35:8 | ControlFlowNode for mc | global |
| in_class.py:35:1:35:2 | ControlFlowNode for mc | global |
| in_class.py:37:1:37:5 | ControlFlowNode for print | global |
| in_class.py:38:1:38:5 | ControlFlowNode for print | global |
| in_class.py:38:7:38:8 | ControlFlowNode for mc | global |
| in_class.py:40:1:40:5 | ControlFlowNode for print | global |
| in_class.py:41:1:41:5 | ControlFlowNode for print | global |
| in_class.py:41:7:41:13 | ControlFlowNode for MyClass | global |
| test.py:6:12:6:17 | ControlFlowNode for param0 | local |
| test.py:6:21:6:26 | ControlFlowNode for param1 | local |
| test.py:12:5:12:16 | ControlFlowNode for global_local | global |

View File

@@ -28,6 +28,7 @@
| Local Variable .0 | test.py:48:12:48:29 | Function listcomp |
| Local Variable .0 | test.py:52:5:52:25 | Function listcomp |
| Local Variable Local | test.py:38:1:38:18 | Function func4 |
| Local Variable Sub | in_class.py:5:1:5:22 | Class MyClass |
| Local Variable arg | in_class.py:24:5:24:18 | Function func |
| Local Variable baz | in_class.py:5:1:5:22 | Class MyClass |
| Local Variable class_local | test.py:30:1:30:14 | Class C |
@@ -59,6 +60,7 @@
| Local Variable self | test.py:40:9:40:29 | Function meth_inner |
| Local Variable seq | test.py:44:1:44:15 | Function func5 |
| Local Variable seq | test.py:51:1:51:21 | Function use_in_loop |
| Local Variable stuff | in_class.py:30:5:30:22 | Class Sub |
| Local Variable use | in_class.py:5:1:5:22 | Class MyClass |
| Local Variable v | test.py:51:1:51:21 | Function use_in_loop |
| Local Variable v | test.py:52:5:52:25 | Function listcomp |