[ 테스트 Class ]
class Test: def Parent(self, data): Parent_val1 = 'pval1' Parent_val2 = 'pval2' self.Child(data) def Child(self, data): Child_val1 = 'cval1' Child_val2 = 'cval2' exec data tobj = Test()
sys._getframe(n) : n단계 전의 프레임을 얻음
[*] sys._getframe(n).f_code.co_name : n단계 전의 프레임에서 함수 이름을 얻을 수 있음
ex)
[*] sys._getframe(n).f_locals을 이용하여 해당 프레임의 지역 변수도 접근 가능.
ex)
결과
[0]locals : {'Child_val1': 'cval1', 'Child_val2': 'cval2', 'data': "print '['+str(i)+']locals : ' + str(sys._getframe(i).f_locals)", 'self': <__main__.Test instance at 0x01234D50>}
[0]name : <module>
[1]locals : {'Child_val1': 'cval1', 'Child_val2': 'cval2', 'data': "print '['+str(i)+']locals : ' + str(sys._getframe(i).f_locals)", 'self': <__main__.Test instance at 0x01234D50>}
[1]name : Child
[2]locals : {'self': <__main__.Test instance at 0x01234D50>, 'data': "print '['+str(i)+']locals : ' + str(sys._getframe(i).f_locals)", 'Parent_val2': 'pval2', 'Parent_val1': 'pval1'}
[2]name : Parent
[3]locals : {'__builtins__': <module '__builtin__' (built-in)>, '__package__': None, 'sys': <module 'sys' (built-in)>, 'i': 3, 'Test': <class __main__.Test at 0x0120CDC0>, '__name__': '__main__', '__doc__': None, 'tobj': <__main__.Test instance at 0x01234D50>}
[3]name : <module>
'Programming > Python' 카테고리의 다른 글
python HTML, XML 파싱 - BeautifulSoup (0) | 2013.11.21 |
---|---|
python SOCKS Proxy 사용 - socksipy (0) | 2013.11.08 |
python socket관련 - socket, urllib2, httplib (0) | 2013.11.05 |
Python Editor (0) | 2013.10.31 |
파이썬 - 입력받기(input, raw_input) (3) | 2012.09.17 |