私はそのクラスで定義されているのと同じクラスの中で、基本的な関数(メソッド)を使いたいと思っています。Python:メソッドMはクラスCのプロパティです。それをCの中でどのように使うのですか?
私は理由はわかりませんが、self
で何かする必要があります。
これは動作します:
class What(object):
def worksOnlyOutside(self, a):
print a ** 2
def worksOnlyInside(b):
print b ** 3
worksOnlyInside(2)
#prints out 8
What().worksOnlyOutside(3)
#prints out 9
は、これは動作しません:
class What(object):
def worksOnlyOutside(self, a):
print a ** 2
def worksOnlyInside(b):
print b ** 3
worksOnlyOutside(2)
#prints out "TypeError: worksOnlyOutside() takes exactly 2 arguments (1 given)"
What().worksOnlyInside(3)
#prints out "TypeError: worksOnlyInside() takes exactly 1 argument (2 given)"
を私はクラスの外部インスタンスとしてそれをしたい場合は、私が必要であることを理解していることから、パラメータself
。さらに、内部的に使用するには、self
をパラメータとして渡すことをスキップする必要があります。
ボトムライン:クラス内で使用でき、そのクラス外のプロパティとして呼び出すことができるメソッドが必要な場合はどうすればよいですか?
クラスBasic Maths
は、方法squared
を持っています。 intの二乗はあなたがたくさん行うことなので、クラスの内部と外部の両方で必要になるでしょう。 2つの異なるメソッド(外部で使用されるself
、内部で使用されないメソッド)を定義する以外に、別のオプションが必要です。
ありがとうございます。
クラスメソッドを作成するには、worksOnlyOutsideコードが正しいはずです。クラス内のメソッドを呼び出すには、self.worksOnlyOutside(2)を使用します。 – Skycc