Python中的结构/字段变量
我想知道是否可以像在MATLAB中一样,在Python中创建结构变量及其各自的字段 例如:我想创建一个结构变量,将人名及其特征作为字段:Python中的结构/字段变量,python,matlab,Python,Matlab,我想知道是否可以像在MATLAB中一样,在Python中创建结构变量及其各自的字段 例如:我想创建一个结构变量,将人名及其特征作为字段: John.name = 'John' John.age = 30 John.sex = 'Male' John.height = 1.85 John.weight = 85 然后我将使用这些变量执行一些操作,例如检查John是否超过18岁: if John.age > 18: .... 例如,你可以使用字典 John = { 'name' :
John.name = 'John'
John.age = 30
John.sex = 'Male'
John.height = 1.85
John.weight = 85
然后我将使用这些变量执行一些操作,例如检查John是否超过18岁:
if John.age > 18: ....
例如,你可以使用字典
John = {
'name' : 'John'
'age' : 30
'sex' : 'Male'
'height' : 1.85
'weight' : 85
}
if John['age'] > 18:
print('older than 18')
或者使用OOP“面向目标编程”的其他方式,例如:
#creation class with name person:
class person:
#define init function to initialize main variables:
def __init__(self, name, age,sex,height,weight):
#define main variables you want to store and use
self.name = name
self.age = age
self.sex = sex
self.height = height
self.weight = weight
#using class to store data you want:
John = person('John',30,'Male',1.85,85)
Mario = person('Mario',25,'Male',1.90,80)
#using data you stored:
print(John.name)
print(John.age)
print(Mario.sex)
#and your example is ready
if John.age > 18: ....
python中不存在结构,因为所有内容都被视为对象 我最好的建议是为您最初打算的结构做一个简单的说明。类似于:
班级人员:
定义初始(自我、姓名、年龄、身高、体重):
self.name=名称
self.age=年龄
自我高度=高度
自重
#创建对象
约翰=人(“约翰”,20,184,75)
#访问字段
如果john.age>18岁:
...
或者,你可以使用字典
约翰={}
#设置字段
约翰[年龄]=20
#使用字段
如果John['age']>18岁:
...
您还可以使用类来实现struct
班级人员:
定义初始(自我,**kwargs):
我在夸尔格:
setattr(self、i、kwargs[i])
约翰=人(姓名=“约翰”,年龄=30岁)
印刷品(约翰.姓名,约翰.年龄)#约翰30
您可以使用不同的构造,哪种构造最合适取决于您打算使用它做什么。在您给出的示例中,假设属性的值不发生变化,则在这里可能是一个很好的候选者:
from collections import namedtuple
Person = namedtuple("Person", ["name", "age", "sex", "height", "weight"])
John = Person("John", 30, "Male", 1.85, 85)
if John.age > 18:
...