タイプと見なされるものを理解しようとしています。タイトルと同様に、あるクラスから2つのオブジェクトを作成する場合、それらは同じタイプと見なされますか?ビッタータイプ?クラスは一意のID、データフィールド(インスタンス変数)、および動作(インスタンスメソッド)を持つオブジェクトを作成するので、それにもかかわらず、クラス内でインスタンス化されたインスタンスは、データフィールドと動作に関して同様の特性を持つため、ある特定のクラスで作成されたオブジェクトはそのクラスの型ですか?プログラマがクラス(例えばクラスBitter)を設計する場合、そのクラスから作成されたオブジェクトはBitter?
この質問がまだ理にかなっていない場合、私は、Pythonの紹介の練習が私に求めていることを理解しようとしています。だからここに質問があります: x座標とy座標を持つ点を表すPointという名前のクラスを設計します。クラスには、 .... .... .aメソッドこのポイントからポイントタイプの別のポイントまでの距離を返します。
問題は、このクラスは一度に1つのインスタンスしか取りませんが、命令は2つの点(x1、y1、x2、y2)を要求しています。だからクラスの外に私がクラスが返すものを格納していた場合、2つの型はPoint型と見なされますか? 例:
class Point:
def __init__(self,x,y):
self.__x = x
self.__y = y
def distance(thisPoint):
#additional code that does what the instructions specify
return distanceFromThisPointToAnother
def main():
x1,y1,x2,y2 = eval(input("Enter two points: "))
p1 = point(x1,y1) #Would this variable be considered point type
p2 = point(x2,y2) #Would this variable be considered "another point of Point type"
pythonのpep8ドキュメントは、オブジェクトの型を明示的にチェックするためにtype()よりisinstance()を好むことに注意してください。 –
@TomBarronよくありません... "明示的にオブジェクトの型をチェックする" **何かが**インスタンス**であるかどうかを明示的にチェックする* *型の場合、明らかに 'isinstance'を使用します。 –
@ Tadhgあなたは私を持っています。 :)私は、pep8は、 "オブジェクト型の比較では、型を直接比較するのではなく、常にisinstance()を使用する必要があります。たぶん私はちょうどそれを初めて引用したはずです。 –