저는 오랫동안 (말 그대로 주 같은)이 일에 매달 렸습니다. 코드에서 다른 모든 작업을 완료했습니다. 나는 또한 많은 연구를 해왔지만 솔루션 근처에서는 아무 것도 얻을 수 없습니다. 내가 여기에 오기 위해 일주일 만 기다렸던 유일한 이유는이 문제를 스스로 풀고 싶었 기 때문이다. 그러나 지금 나는 포기한다! 내가 인스턴스를 만들 때, 이제함수의 인수를 함수 내부의 다른 객체의 객체로 사용하는 방법은 무엇입니까?
class test:
def meth1(self, obj):
self.hello = {}
return self.hello.obj()
def meth2(self):
test.meth1(self, 'keys')
및 방법은 다음과 같습니다 meth2
호출하려고 :
, 나는 다음과 같은 코드가 있다고 가정
x = test()
x.meth2()
그것은 나에게 오류를 제공합니다 명백한 이유. 어떻게하면 원하는대로 할 수 있습니까? 함수에 인수를 전달하고 그 인수를 다른 객체의 객체로 사용합니까?
def meth1(self, obj):
self.hello = {}
return getattr(self.hello, obj)()
getattr(a, b)
이 (두 번째 경우에 b
은 첫 번째 경우의 b
보유하는 문자열입니다) a.b
동일합니다 : 당신이 getattr()
을 원하는처럼
OK! 내가 제대로 _get_ 할 수 없었기 때문에 나는 실제로 getattr을 잊어 버렸습니다 ...? 그럼, 그 코드로 무슨 일이 일어나는지 나에게 설명해 주시겠습니까? 내 말은,'self.hello.obj'를 말하는 것과 비슷하지만 어떤 차이가 있는지 알고 있습니다. –
@AkshatTripathi 물론, 작은 설명을 추가했습니다. 아직도 이해가 안되는 것이 있으면 알려주세요. – arshajii
하지만 그것이 무슨 차이가 있습니까? 당신이 작성한 코드는'getattr (self.hello, obj)()'는'self.hello.obj()'와 동일하지만 여전히 후자를 시도 할 때 예외가 발생합니다. –