0

2 つのクラスで構成されるプログラムを作成する必要があります。「人」クラスと「友達」クラス。person クラスには属性 ( first_name, last_name, phone_number )が必要です。"friend" クラスには生年月日と emailが必要です。
アプリケーションは、ユーザーが連絡先を追加したり、名前で連絡先を検索したり、アプリケーションを終了したりできるようにするメイン メニューをユーザーに表示します。ここ
で素晴らしいガイドを見つけましたが 、複数のクラスでこれを達成する方法がわかりません。私は5週間のコースに参加していますが、教科書は役に立ちません。誰かが私にこれを教えてくれたら、私はそれを感謝します! これが私が今持っているものです:

class person:
    def information:
        first = print(input("first: ")
        last = print(input("last: ")
        number = print(input("phone number: ")
 class friend:
     def friendinfo:
         email = print(input("email: ")
         birthday = print(input("birthday: ")

ユーザーが連絡先を追加することを選択すると、アプリケーションはユーザーに、通常の人を追加するか友達を追加するかを尋ねます。ユーザーが新しい通常の連絡先を追加したい場合、アプリケーションはその人の名、姓、名前、および電話番号を尋ねます。
ユーザーが新しい友達の連絡先を追加したい場合、アプリケーションはユーザーに名、姓、電話番号、電子メール アドレス、生年月日を尋ねます。ユーザーが連絡先を名前で検索することを選択すると、アプリケーションはユーザーに姓を尋ね、次にアプリケーションはその姓を持つすべての連絡先の完全な情報を表示します。

4

3 に答える 3

4

クラスに関する注意事項

クラスは、物事の設計図のようなものです。クラスを作成するときは、建物の建築計画を描くのと同じように、設計図を作成しているだけです。ただし、その建物はまだ作成されていません。また、これらの計画を使用して、すべて同じ方法で形成された大量の建物を作成することもできます (私は南カリフォルニアに住んでおり、郊外に示されているように非常に OOP 指向の場所です)。いずれにせよ、クラスは単なるテンプレートです。クラスが定義するものを実際に作成すると、データ入力できます。

問題パートI

それでは、必要なものを見てみましょう。

person クラスには属性 ( first_name、last_name、phone_number ) が必要です。「友達」クラスには生年月日とメールアドレスが必要です。

それでは、 person というクラスを作成しましょう。

class Person:

クラスを作成するときは、それらを「インスタンス化」します。これらの「人」のいずれかが作成/インスタンス化されたときにプログラムが何をすべきかをプログラムが認識できるように、いくつかの指示が必要になることがよくあります。多くの場合、これらの命令は「init」と呼ばれるセクションに配置されます。

class Person:
    def __init__(self):

「自己」の部分は紛らわしいですが、クラスのすべてのメソッドには、それが特定のクラス オブジェクトの一部であることを知る何らかの方法が必要です。これは、「自己」で何が起こっているのかをごまかすための非常にあいまいな方法です。今のところ、これは単なる一般的な規則です。クラスに入れるすべての関数は、最初の引数として 'self' を持ちます。

次に、あなたが言及した属性を追加したいと思います。通常は次のようになります。

class Person:

    def __init__(self, first_name, last_name, phone_number):
        self.first_name = first_name
        self.last_name = last_name
        self.phone_number = phone_number

これらの属性を__init__関数に入れます。つまり、これらの「人」のものを最初に作成するときはいつでも、これらのものを指定する必要があります。そうしないと、作成が機能しなくなります。クラスを作成するときは、クラスを呼び出して、クラスPersonが期待するものを与えるだけです。

bob = Person('Bob', 'Something', '43819110')

これで、次の方法でボブの属性にアクセスできます。

>>> bob.phone_number
'43819110'

新しい人を追加できinput()ます(上記のように使用する可能性があります...):

sinatra = Person('Frank', 'Sinatra', 217653918')

そして私たちは順調に進んでおり、私たちのPerson青写真であらゆる種類の人々を生み出しています。これらすべての人々を保持するためのコンテナが必要になります。

contacts = [sinatra, bob, etc.]

そのコンテナを繰り返し処理することで、誰かの電話番号を取得できます。

for contact in contacts:
    if contact.first_name == 'Bob':
      print(contact.phone_number)

ここで作業することはたくさんありますが、正しい方向に始めるのに役立つかもしれません. ポイントは、タスクを分離し、それらを連携させることです。ハッピーコーディング!


[長すぎて他の人にとって本当に役に立たないため、他のすべてを削除しました]

于 2013-08-18T05:29:43.630 に答える