在Python中定义类时,为什么类用法需要换行?尝试从字符串(python -c '....'
)运行python程序时,这有点烦人,因为我无法在同一行上定义和使用该类。有没有办法做到这一点?
例如,以下失败:
$ cat class_play.py
class ClassA(): pass; a = 3; print(a); print(ClassA)
$ class ClassA(): pass; a = 3; print(a); print(ClassA)
$ python class_play.py
3
Traceback (most recent call last):
File "class_play.py", line 1, in <module>
class ClassA(): pass; a = 3; print(a); print(ClassA)
File "class_play.py", line 1, in ClassA
class ClassA(): pass; a = 3; print(a); print(ClassA)
NameError: name 'ClassA' is not defined
Run Code Online (Sandbox Code Playgroud)
但是在换行中使用该类可以:
$ cat class_play.py
class ClassA(): pass; a = 3; print(a);
print(ClassA)
$ python class_play.py
3
<class '__main__.ClassA'>
Run Code Online (Sandbox Code Playgroud)
使用换行符,命令行不仅限于一行:
python -c "
class Foo:
pass
print(Foo())
"
Run Code Online (Sandbox Code Playgroud)
或者只是在字符串中插入\n
序列$'...'
python -c $'class Foo:\n pass\nprint(Foo())'
Run Code Online (Sandbox Code Playgroud)
使用分号,您只能添加更多简单的语句,并且如果您以一个开始,则它们都属于同一复合语句。您不能使用这些来定义方法或期望class
语句已完成,而您仍在class
定义中。