Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建一个类的3个实例并存储不同的值_Python_Python 3.x - Fatal编程技术网

Python 创建一个类的3个实例并存储不同的值

Python 创建一个类的3个实例并存储不同的值,python,python-3.x,Python,Python 3.x,我想创建一个程序,它将创建一个类的3个实例,并为不同的人存储不同的值 我拥有的当前代码将输出最后一个人的信息。我不知道我是否正确设置了一个类,但任何帮助都是非常需要的 #Main module def main(): #Declare variables name = "" address = "" age = "" phoneNumber = "" person1Information = personalInformation(name, ad

我想创建一个程序,它将创建一个类的3个实例,并为不同的人存储不同的值

我拥有的当前代码将输出最后一个人的信息。我不知道我是否正确设置了一个类,但任何帮助都是非常需要的

#Main module
def main():
    #Declare variables
    name = ""
    address = ""
    age = ""
    phoneNumber = ""
    person1Information = personalInformation(name, address, age, phoneNumber)
    person2Information = personalInformation(name, address, age, phoneNumber)
    person3Information = personalInformation(name, address, age, phoneNumber)

    #Person 1
    name, address, age, phoneNumber = getPersonInformation(name, address, age, phoneNumber)
    storePerson1Information(person1Information, name, address, age, phoneNumber)
    #Person 2
    name, address, age, phoneNumber = getPersonInformation(name, address, age, phoneNumber)
    storePerson2Information(person2Information, name, address, age, phoneNumber)
    #Person 3
    name, address, age, phoneNumber = getPersonInformation(name, address, age, phoneNumber)
    storePerson3Information(person3Information, name, address, age, phoneNumber)

    #Display
    displayInformation(person1Information, person2Information, person3Information)

#Ask for information
def getPersonInformation(name, address, age, phoneNumber):
    name = str(input("What is this person's name?"))
    address = str(input("What is the address for this person?"))
    age = int(input("What is this person's age?"))
    phoneNumber = str(input("What is their phone number?"))
    return name, address, age, phoneNumber

#Add peron 1's information to class
def storePerson1Information(person1Information, name, address, age, phoneNumber):
    person1Information.setName(name)
    person1Information.setAddress(address)
    person1Information.setAge(age)
    person1Information.setPhoneNumber(phoneNumber)
    return

#add peron 2's information to class
def storePerson2Information(person2Information, name, address, age, phoneNumber):
    person2Information.setName(name)
    person2Information.setAddress(address)
    person2Information.setAge(age)
    person2Information.setPhoneNumber(phoneNumber)
    return

#Add person 3's information to class
def storePerson3Information(person3Information, name, address, age, phoneNumber):
    person3Information.nameInformation = name
    person3Information.addressInformation = address
    person3Information.ageInformation = age
    person3Information.phoneNumberInformation = phoneNumber
    return

#Display the results
def displayInformation(person1Information, person2Information, person3Information):
    print("Person 1's name:", person1Information.getName())
    print("Person 2's name:", person2Information.getName())
    print("Person 3's name:", person3Information.getName())
    print("Person 1's age:", person1Information.getAge())
    print("Person 2's age:", person2Information.getAge())
    print("Person 3's age:", person3Information.getAge())
    print("Person 1's address:", person1Information.getAddress())
    print("Person 2's address:", person2Information.getAddress())
    print("Person 3's address:", person3Information.getAddress())
    print("Person 1's phone number:", person1Information.getPhoneNumber())
    print("Person 2's phone number:", person2Information.getPhoneNumber())
    print("Person 3's phone number:", person3Information.getPhoneNumber())

#Class holding variables and methods
class personalInformation(object):
    #Declare vaibales
    nameInformation = ""
    addressInformation = ""
    ageInformation = 0
    phoneNumberInformation = ""
    #Initialize?
    def __init__(self, nameInformation, addressInformation, ageInformation, phoneNumberInformation):
        self.nameInformation = nameInformation
        self.addressInformation = addressInformation
        self.ageInformation = ageInformation
        self.phoneNumberInformation = phoneNumberInformation
    #Modifiers
    def setName(self, name):
        nameInformation = name
        return
    def setAddress(self, address):
        addressInformation = address
        return
    def setAge(self, age):
        ageInformation = age
        return
    #Accessor
    def setPhoneNumber(self, phoneNumber):
        phoneNumberInformation = phoneNumber
    def getName(self):
        return self.nameInformation
    def getAge(self):
        return self.ageInformation
    def getAddress(self):
        return self.addressInformation
    def getPhoneNumber(self):
        return self.phoneNumberInformation

#Call main module
main()

基本上我认为你是对的。我不知道我的答案是否是你想要的,但我相信你所要做的就是这样:

代码:


这真的很简单而且有效。如果需要,可以在Personinit的定义中引入更多字段。这就是你想要的吗?

你应该仔细阅读。您正在创建属于类的所有成员而不是每个成员的变量。您还应该并且应该学习如何使用同一组函数三次(针对三个人),而不是三次几乎相同的副本。是的,谢谢。我发现在调用getPersonInformation()函数后声明person1Information变量时,所有内容都显示正确。
class Person:

    def __init__(self, name):
        self.name = name
    def setName(self, name):
        self.name = name
    def getName(self):
        return self.name

def main():

    person1 = Person("John")
    person2 = Person("Fred")
    person3 = Person("Paul")

    print person1.name
    print person2.name
    print person3.name

main()