정의 된 클래스와 동일한 클래스 안에서 기본 함수 (메서드)를 사용하고 싶습니다.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를 squaring하는 것은 당신이 많이하는 일이기 때문에 클래스의 내부와 외부 모두 필요합니다. 두 가지 다른 메소드를 정의하는 것 외에 다른 옵션이 있어야합니다. 하나는 외부에서 사용할 self
이고, 하나는 내부에서 사용할 수 없습니다.
감사합니다.
클래스 메서드를 만들려면 worksOnlyOutside 코드가 올바른 것이어야합니다. 클래스 내에서 메소드를 호출하려면 self.worksOnlyOutside (2)를 사용하십시오. – Skycc