gpt4 book ai didi

Python - 如果在类中使用了未声明的变量,则强制出错

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:16 26 4
gpt4 key购买 nike

考虑以下 Python 代码:

class a_class:
defined_var = 1

def a_function(self):
self.defined_var = 2
self.undefined_var = 3

可以为我在类(class)开始时没有声明的变量赋值(然后隐式声明它)(就像我为undefined_var 在前面的例子中)给我带来了几个问题,因为对于巨大的类,我忘记了我定义了什么,我忘记了我没有定义什么。

我知道这个问题听起来很傻。我已经使用 C/C++/Java 进行了很长时间的开发,其中类中的变量定义是强制性的...

有没有办法避免这种情况?我的意思是,我想要像 C/C++/Java 那样的行为,如果我使用 undefined variable ,我会收到错误消息。

最佳答案

默认情况下,python 实例有一个 __dict__ - 存储对象所有属性的字典。这就是允许他们存储任意属性的原因。您可以通过定义 __slots__ 来禁止创建 __dict__ .这是一个类级变量,列出类的所有属性实例可以具有的名称。如果类有 __slots__,尝试分配给未定义的属性将引发异常。

例子:

class MyClass:
__slots__ = ['defined_var']

def a_function(self):
self.defined_var = 2

obj = MyClass()
obj.a_function()
obj.undefined_var = 3 # throws AttributeError

关于Python - 如果在类中使用了未声明的变量,则强制出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58158104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com