0

会議に参加している人に関する情報を保存する簡単なクラスがあります。

class Attendee:
    def __init__(self, fName, lName, email):
        self.fName = fName
        self.lName = lName
        self.email = email

2つのユーザー入力文字列の組み合わせを使用して参加者オブジェクトを作成しようとしています。

#get inputs from user:
fName = input("First name: ")
lName = input("Last name: ")
    .....

newObjectName = fName[0] + lName

newObjectName = Attendee(fName, lName, email)

明らかにこれは機能しません-しかし、あなたは私が狙っているアイデアを理解します。C#では、次の方法で新しいオブジェクトを作成できることを知っています。

Attendee newObjectName = new Attendee(fName, lName, email)

これはどのようにPythonに変換されますか?

ありがとう

4

3 に答える 3

4

可変変数名が必要な場合は、代わりに別のデータ構造が必要です。たとえば、辞書はうまく機能します。

attendees = {}
newObjectName = fName[0] + lName
attendees[newObjectName] = Attendee(fName, lName, email)
于 2012-12-20T02:41:44.847 に答える
1

あなたはすでにあなたの質問にコードを持っています-newObjectName = Attendee(fName, lName, email)

于 2012-12-20T02:30:13.563 に答える
0

以下の Attendee クラスでは、オブジェクトが作成され、ユーザーがデータを入力するたびに、データ属性 (変数) に値を設定するセッターを定義します。

また、これらのデータをオンデマンドで取得するために使用されるゲッターも定義します

strを含む最後の行は、オブジェクトの状態を文字列として出力します

class Attendee:

    def __init__(self, fName, lName, email):

        self.fName = fName
        self.lName = lName
        self.email = email

    def set_fName(self, fName):
        self.__fName = fName

    def set_lName(self, lName):
        self.__lName = lName

    def set_email(self, email):
        self.__email = email

    def get_fName(self, fName):
        return self.__fName

    def get_lName(self, lName):
        return self.__lName

    def get_email(self, email):
        return self.__email

    def __str__(self):
        return "First name: " + self.__fName + "\nLast name: " + self.__lName + "\nEmail: " + self.__email

以下は、ユーザー入力を要求し、(New_attendee クラスの) クラス オブジェクトを作成するメイン プログラムの例です。最初に空 ( = {} ) で作成されたディクショナリを追加し、各エントリはディクショナリに格納されます。

def main():

    NewAttendee = {}

    again = 'y'

    while again == 'y':

        fName = input("First name: ")
        lName = input("Last name: ")
        email = input("Email: ")

        entry = Attendee(fName,lName, email)

        if fName not in NewAttendee:
            NewAttendee[fName] = entry
            print('The new attendee has been added')
        else:
            print('That name already exists.')

        again = input('Do you want to add a new attendee? \'y\' for yes -->')

main()

それが役立つことを願っています! PS: str (文字列としてのオブジェクトの状態) を実行しませんでした

于 2012-12-20T03:07:01.323 に答える