python - 在 __init__ 下声明的普通变量
问题描述
在下面的示例中,我使用我的类 Classy 声明了一个对象 obj1。初始化 obj1 时,我使用 self.var 声明一个变量,并且我有一个可以打印到控制台的实例对象。一切都直截了当。
我的问题是围绕我设置的另一个变量,命名变量。运行我的代码不会产生任何错误,但我(似乎)无法访问它。它既不是Classy的类变量,也不是obj1的实例变量。
变量在哪里?
class Classy:
def __init__(self, value):
self.var = value
variable = 1
obj1 = Classy("object")
print(obj1.var)
目的
解决方案
您命名的变量variable
是局部变量。具体来说,它是__init__()
方法的本地。您将无法在该方法之外访问它。您只能在方法内部访问它。在方法内部创建的局部变量__init__()
实际上仅用于创建其他实例变量:
class Classy:
def __init__(self, value):
self.var = value
variable = 1
self.new_var = variable + 1 # new_var is 2
obj1 = Classy("object")
print(obj1.var)
推荐阅读
- python-3.x - 使用 roboframework-faker 库根据国家或地区创建假数据
- netsuite - Netsuite SS 2.0 - 在 Suitelet 上填充子列表数据
- php - 使用 PHP、JQuery 和 wordpress 在单页应用程序中一次显示一篇文章
- android - 错误:“路径”参数必须是字符串类型。唱歌apk github动作时收到类型未定义
- joi - Joi 数组验证:允许空数组
- file - 如何从 SQL Server 生成 excel 文件 (.xlsx)
- bash - 更具体/详细的 DIFF 数据
- c# - 您可以在带有实体框架核心的 Iqueryable 中使用带有 let 语句的字典吗?
- docker - Docker buildx 命令行补全
- ros - ROS - 将超声波数据添加到 range_sensor_layer 的问题