もしあなたがオブジェクト指向プログラミングに慣れていないなら、私はあなたがよく知らないいくつかの用語を投げかけるかもしれません.
メソッドと通常の関数の違いは、メソッドがクラスによって「所有」されているという事実です。メソッドは基本的に、そのクラス (通常はそのオブジェクト) に対してのみ実行される関数です。Python では、メソッドをクラス本体に配置して宣言し、次のように 1 回インデントします。
class MyClass:
def myMethod(self):
...
覚えておくべきことの 1 つは、キーワードです。self
これは、そのクラスのインスタンス、つまり特定のオブジェクトを参照します。ただし、括弧内の引数として渡すことはありません。例では、s
前にあり.
ます。を実行してインスタンス化 s
すると、というクラスのインスタンスs = Segment(p1, p2)
が作成されます。クラス メソッドの最初の引数として渡す必要があります。どのオブジェクトを操作するかを他にどのように知る必要がありますか?Segment
s
self
__init__()
そのクラスの新しいオブジェクトを作成する方法を定義する特別なメソッドです。クラス名を入力し、クラス名がメソッドであるかのように引数を括弧内に入力して呼び出します。あなたの例では、それはPoint(3, 4)
とSegment(p1, p2)
です。
s.p1
通常、の最初のポイントを取得するためにタイプするかもしれませんが、メソッド本体では、インスタンス化される前にクラスが宣言されているため、何がSegment
何であるかわかりません。しかし、あなたは を渡すことを知っているので、あなたが参照しているもののを取得するためにタイプします。s
s
self
self.p1
p1
Segment
クラスはすでにPoint
どこかに定義されていますか?例については、そのコードを見てください。
ガイド付き演習が必要な場合は、codeacademyをチェックすることをお勧めします。それは非常に初歩的ですが、仕事を成し遂げます。