Python 创建多个属性及其名称
我是Python新手,正在尝试创建一个具有多个属性的类。 我希望访问以下属性:Python 创建多个属性及其名称,python,class,Python,Class,我是Python新手,正在尝试创建一个具有多个属性的类。 我希望访问以下属性: measured_dataset.date measured_dataset.temperature1 measured_dataset.temperature2 属性date、temperature1和temperature2将是带有列表的变量: measured_date = [1,2,3] measured_dataset = dataset('date', measured_date) 我尝试创建一个类,
measured_dataset.date
measured_dataset.temperature1
measured_dataset.temperature2
属性date、temperature1和temperature2将是带有列表的变量:
measured_date = [1,2,3]
measured_dataset = dataset('date', measured_date)
我尝试创建一个类,如:
class dataset :
def __init__(self, name, value = []) :
self.name = name
self.parameter = parameter
但不知何故,我只能创建测量的_dataset.name
如何创建所需的内容?您不能用一种方法命名类属性,然后尝试用另一种名称获取它们。您可以这样做:
class Dataset :
def __init__(self, date, temperature1, temperature2) :
self.date = date
self.temperature1 = temperature1
self.temperature2 = temperature2
measrued_dataset = Dataset('2020-01-26', 100, 200)
在一般情况下,您应该避免这样做,同时动态地执行相同的操作:
class Dataset:
def __init__(self, **kwdargs):
self.__dict__.update(kwdargs)
measrued_dataset = Dataset(date='2020-01-26', temperature1=100, temperature2=200)
可以使用特性围绕现有属性定义别名
class Dataset :
def __init__(self, name, values) :
self.name = name
self.parameter = parameter
@property
def date(self):
return self.parameter[0]
@property
def temperature1(self):
return self.parameter[1]
@property
def temperature2(self):
return self.parameter[2]
然而,仅仅因为您将值作为列表提供,所以将其存储在列表中似乎有些奇怪__init_u;可以解包列表并直接存储属性:
class Dataset:
def __init__(self, name, values):
self.name = name
self.date = values[0]
self.temperature1 = values[1]
self.temperature2 = values[2]
或者更好的方法是,将这些名为parameters的值设为uuu init_uuuu,并将解包委托给类方法
class Dataset:
def __init__(self, name, date, temp1, temp2):
self.name = name
self.date = date
self.temperature1 = temp1
self.temperature2 = temp2
@classmethod
def from_list(cls, name, values):
return Dataset(name, values[0], values[1], values[2])
self.parameter=参数→ NameError:未定义名称“parameter”。类名应遵循小写字母\u加下划线的样式。您正在使用列表作为默认参数,请小心!