Oll*_*lie 2 python if-statement class while-loop
有没有一种方法可以检查一个类是否已定义/存在?我在菜单上有不同的选项,其中一些需要继承的变量,因此,如果您在设置变量之前尝试选择该函数,则会崩溃。我的课称为Gen0,我通过简单地将其开始
class Gen0():
Run Code Online (Sandbox Code Playgroud)
其余的代码后面设置变量。对于上下文,我正在进行总体模型,因此需要在显示(选项2),使用(选项3)或导出(选项4)之前设置初始值(选项1)。
您的情况尚不完全清楚,因此我将回答“是否有方法检查是否定义/存在某个类?”的问题。
是的,有多种方法可以检查当前范围内是否已定义类。我会讲几个。
只是尝试使用它!
try:
var = MyClass()
except NameError:
# name 'MyClass' is not defined
...
Run Code Online (Sandbox Code Playgroud)
这可能是最Pythonic的方法(除了确保已导入/定义了类之外)。
当前范围内的所有内容均由给出dir()。当然,这不会处理导入的内容!(除非它们是直接导入的。)
if not 'MyClass' in dir():
# your class is not defined in the current scope
...
Run Code Online (Sandbox Code Playgroud)
也许您想查看该类是否在特定模块中定义my_module。所以:
import my_module
import inspect
if not 'MyClass' in inspect.getmembers(my_module):
# 'MyClass' does not exist in 'my_module'
...
Run Code Online (Sandbox Code Playgroud)
现在,值得指出的是,如果您在生产代码中随时使用这些东西,那么您的代码编写可能很糟糕。您应该始终知道在任何给定点范围内的类。毕竟,这就是我们拥有导入语句和定义的原因。我建议您使用更多示例代码来整理问题,以获得更好的答复。
| 归档时间: |
|
| 查看次数: |
5839 次 |
| 最近记录: |