2016-12-03 15 views
-1

クラスの3つのインスタンスを作成し、異なる人物に異なる値を格納するプログラムを作成します。クラスの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() 
+0

[クラスとインスタンスの変数](https://stackoverflow.com/questions/2714573/instance-variables-vs-class-variables-in-python)を参照してください。あなたは*各メンバー*の代わりにあなたのクラス*のすべてのメンバー*に属する変数を作成しています* – CoryKramer

+0

また、[Pythonでsetterとgettersを避ける](https://stackoverflow.com/questions/2627002/whats-the-pythonic – CoryKramer

+0

そして、3組の関数を3回(3人の場合)使用する方法を学び、3つのほぼ同一のコピーを使用する方法を学ぶ必要があります。 – alexis

答えて

0

基本的にはあなたが正しいと思います。私の答えは、あなたが探しているものであるかどうかは知りませんが、私はあなたがしなければならないすべては、このようなものであると信じています:

コード:

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() 

それは本当に簡単だし、それが動作します。必要な場合は、Person の定義に、より多くのフィールドを導入することができます。あなたが求めていたものですか?

+0

ありがとうございます。 getPersonInformation()関数が呼び出された後にperson1情報変数が宣言されたとき、すべてが正しく表示されていました。 – iProfiter

関連する問題