-1

私はプログラミングのクラスを取っています。テストの 1 つで、既に作成されたクラスから継承するクラスを作成する必要があります。これは先生が私に教えてくれたコードですが、うまくいかないようです:

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer(last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date
4

3 に答える 3

6

この線

Employer(last_name, first_name, address, phone, email)

の実行が終了するEmployerとすぐにガベージ コレクションされるオブジェクトを作成します。オブジェクトに__init__()はまったく影響しません。Internあなたが意味することは、おそらく次のようなものです

Employer.__init__(self, last_name, first_name, address, phone, email)

または多分

super(Intern, self).__init__(last_name, first_name, address, phone, email)
于 2012-12-17T17:33:04.710 に答える
2

selfへの引数がありませんEmployer。親のを使用するsuperか、明示的に渡す必要があります。また、親のメソッドを明示的に呼び出す必要があります。self__init____init__

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer.__init__(self, last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date
于 2012-12-17T17:31:24.853 に答える
0

Python のコード ブロックのメカニズムであるインデントがありません。

試す:

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer(last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date
于 2012-12-17T17:31:18.100 に答える