首先,你应该知道我对编程非常不熟悉,所以我会喜欢任何详细的解释。
所以我试图做的是一个基本上创造人的程序。这包括他们的名字,收入,工作等独特的特征。因为我计划培养大量的人,'我希望我只能陈述我想要制作多少人,我会把它们作为一个对象类。为了给他们起个名字我觉得我可以做'人1,' ' PERSON2,'等等。当我发现你无法将字符串变成对象时,我遇到了麻烦。 (或者说,它非常不受欢迎。)
经过研究,我能够让每个人都成为一本字典,并带有像“收入”这样的关键字。和#600; 60000这样的值。'但是,当涉及到操纵创建的数据时,使用类和方法似乎要好得多。
谢谢,对不起,如果这很糟糕,或者我忽略了什么。
编辑:我意识到我可以更好地问这个问题,如何实例化大量人员,或者如何使实例化所需的变量?我很难解释事情......
答案 0 :(得分:0)
查找面向对象的编程。这是你试图包围的概念。
答案 1 :(得分:0)
在我看来,你在问两个不同的问题(如果我错了,请纠正我)。第一个 - 你应该如何存储你的数据。第二个 - 如何轻松地重复这样做。
您可以通过多种方式存储数据。我不知道你确切的用例,所以我不能确切地说出哪一个最好用(你提到在你的问题中创建对象,所以我将其用于进一步的例子)
物件
class Person(object):
def __init__(self, name, income):
self.name = name
self.income = income
>>> from collections import namedtuple
>>> a = namedtuple("person", ['name', 'income'])
>>> a
<class '__main__.person'>
>>> ab = a("Dannnnno", 100)
>>> ab
person(name='Dannnnno', income=100)
>>> ab.name
'Dannnnno'
>>> ab.income
100
字典
someperson = {0 : {name:"Dannnno", income:100}}
someotherperson = {1: {name:"kcd", income:100}}
至于创建大量的 - 要么创建像GroupOfPeople
这样的类,要么使用函数。
使用上面的Classes示例(我假设您可以正确翻译其他两个示例)
class GroupOfPeople(object):
def __init__(self, num_people):
self.people = [Person("Default", 0) for i in range num_people]
####
def MakeLotsOfPeople(num_people):
return [Person("Default", 0) for i in range num_people]
然后,您可以将这些单独的Person
实例编辑为您想要的任何内容。您还可以编辑类/函数以接受存储所有名称/收入/等数据的另一个输入(可能是文件名)。
如果你想要一组人的字典,只需用字典理解来代替列表理解,就像这样
{i : Person("Default", 0) for i in range num_people}