2016-07-30 2 views
1

1)なぜObjectからclassを呼び出す必要があるのですか?Pythonのオブジェクトとインスタンス

オブジェクトからの呼び出しが必要な場合の良い例を提供できますか?私は1つしか見つけられませんでした。 のPython 2.7でのxこれは次のようになります。以下

class Foo: 
    pass 

class Bar(Foo): 
    pass 

2)IのPython 3.xの中のオブジェクトから明示的に派生する必要がない、found?これは何を意味するのでしょうか ?つまり、クラスBar(Foo)を呼び出す必要はありませんか?初心者としては理解しづらい。説明してください 。

3)のPython 2.7

class Boat(): 
    pass 

my_boat = Boat() #instantiate object 

my_boat2 = Boat() #instantiate object 

print(my_boat) 
print(my_boat2) 

< .Boat 0x0000000008DFECC8>

で0x0000000008DFEC88>

< .Boat インスタンスインスタンスランニング同じコード0x000002406FF8E390でのPython 3.xの中で私に

< を与える主な .Boat オブジェクト> 0x000002406FF8ECF8で

< メイン .Boat オブジェクト>

A)だから私は、と結論付けることができますインスタンスとオブジェクトはPython 3.xで同じですか? さまざまな情報源から多くの情報を読んだ後、私は理解しています。

インスタンスは単にクラスの青写真です。

クラスもオブジェクトです。クラスをインスタンス化するときは、オブジェクトです。 Pythonで

すべてが私の理解が間違っている場合には、私を正しいオブジェクト

です。 このように、オブジェクトとインスタンスが同じ理由である理由を理解するのは非常に難しいです。これで私をクリアしてください。

答えて

1

オブジェクト指向プログラミングの章A Byte of Pythonをご覧ください。要約する

クラスオブジェクトがなされていることにより、青写真です。最初の例で何をしているのかは、という継承と呼ばれています。これは必須ではなく、完全にオプションです。パイソンのバイトからの

class SchoolMember: 
    '''Represents any school member.''' 
    age = some_age 
    pass 


class Teacher(SchoolMember): 
    '''Represents a teacher.''' 
    pass 


class Student(SchoolMember): 
    '''Represents a student.''' 
    pass 

この状況でSchoolMemberクラスは、ベースクラスまたは スーパークラスとして知られています。 TeacherクラスとStudentクラスは、派生したクラスまたはサブクラス と呼ばれます。

すべての生徒はすべてのいずれかの年齢になります。しかし、再び、それはnessecaryではありません。

class Teacher(): 
    '''Represents a teacher.''' 
    age = some_age 
    pass 


class Student(): 
    '''Represents a student.''' 
    age = some_age 
    pass 

となり、継承なしで同じ結果が得られます。あなたの質問3Aについては

クラスのインスタンスはオブジェクトとして知られています。オブジェクトを作成しインスタンス化する別の言語では、2つの異なるステップですが、Pythonではこれらは同時に実行されるため、オブジェクトも常にインスタンスになります。

あなたの現在の理解は、いくつかの欠点があります。

インスタンスはクラスの単なる青写真です。

私が言ったように、クラスはオブジェクトの青写真です。

クラスもオブジェクトです。クラスをインスタンス化するときは、オブジェクトです。

オブジェクトインスタンスあります。クラスからオブジェクトを作成すると、自動的にインスタンス化されます。

Pythonですべてがこれは全く意味がありませんオブジェクト

です。 Pythonのすべてはオブジェクトに基づいていますが、それは深い理解があって後で心配するものです。

もう少し理解していただければ幸いです。 A Byte of Pythonをご覧ください。これは、オブジェクト指向プログラミングの本当に良い説明をしています。

+0

@Redme努力をしてコンセプトを説明してくれてありがとう。提案されたトピックを理解し、その概念をよりよく理解すれば、私はあなたの答えを受け入れます。それまで貢献し続けるまで – user110244

関連する問題