如何在python中的类定义中声明未初始化的变量

use*_*ohn 6 python variables initialization

我来自MATLAB背景.当我创建类定义时,我可以实例化"空"变量名,然后为它们分配值或对象.即


classdef myclass < handle

    properties
        var1
        var2
    end 
end

a = myClass;
a.var1 = someOtherClassObject;
Run Code Online (Sandbox Code Playgroud)

我如何在Python中执行此操作?我试过这样的事情:

class myClass:
def __init__(self):
    var1 
    var2

a = myClass()
a.var1 = someOtherClassObject()
Run Code Online (Sandbox Code Playgroud)

但这不正确.主要目的是构建我的类的定义,如结构,然后根据需要去实例化变量.

并且将不胜感激.

Ana*_*mar 12

您需要使用self.为实例(对象)创建变量

我不认为你可以在python中有一个未初始化的名称,而不是为什么不只是初始化你的实例变量None?示例 -

class myClass:
    def __init__(self):
        self.var1 = None 
        self.var2 = None
Run Code Online (Sandbox Code Playgroud)

您可以稍后将它们设置为您想要的任何内容 -

a = myClass()
a.var1 = someOtherClassObject
Run Code Online (Sandbox Code Playgroud)

如果需要定义类变量(跨实例共享),则需要在__init__()方法外部定义它们,直接在类中定义 -

class myClass:
    var1 = None
    var2 = None
    def __init__(self):
        pass
Run Code Online (Sandbox Code Playgroud)