【问题标题】:Classes with multiple attribute levels [Beginner]具有多个属性级别的类 [初学者]
【发布时间】:2015-10-21 02:53:31
【问题描述】:

python 是否有类似的功能,其数据结构类似于在 MATLAB 中可以看到的?

例如,能够调用类似于以下内容的类:

variable = Class(inputs)

将允许调用具有多个属性的变量(不确定属性是否是正确的术语)。

variable.attribute1.attribute2

换句话说,定义一个类将提供这些多个属性的功能。如果存在此类功能,我只寻求文档。

我将添加一个小例子,因为我的问题很模糊。 因此,我将定义一个将数据集分配给变量的类。

class Properties(object):

    def __init__(self, data_set1, data_set2):
        self.Data1 = data_set1
        self.Data2 = data_set2

现在,我将定义一个变量。

variable = Properties([1, 2, 3, 7], [3, 9, 2, 8])

显然,现在我可以将变量及其各个数据集称为:

variable.Data1
variable.Data2

我希望有另一个类能够定义集合的统计属性,例如:

variable.Data1.Maximum
variable.Data1.Minimum
variable.Data2.StandardDev

【问题讨论】:

  • 我不太确定你在问什么,但答案是肯定的。 :)

标签: python class attributes


【解决方案1】:
class Attribute(object):
    pass

class MyClass(object):
    def __init__(self):
        self.attribute1 = Attribute()

variable = MyClass()
variable.attribute1.attribute2 = 5

【讨论】:

    【解决方案2】:

    类是具有属性(python 对象...在 python 中,一切都是对象)和行为(函数)的对象。

    当您使用Class(inputs) 初始化一个类时,它实际上会运行该类的构造函数,它可以设置部分或全部生成的对象属性,例如 variable.attribute1

    属性可以是任何数据类型...数字、字符串甚至其他类。这意味着attribute1 可以是Class2 的对象,它有一个名为attribute2 的OWN 属性(它可以是任何类型的对象,包括另一个类,甚至是Class 或Class2 类型的对象,如果你想发疯的话)。

    所以,TL;DR ...是的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 2015-06-02
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多