[PYTHON] 파이썬 : 클래스 이름을 함수의 매개 변수로 전달 하시겠습니까?
PYTHON파이썬 : 클래스 이름을 함수의 매개 변수로 전달 하시겠습니까?
class TestSpeedRetrieval(webapp.RequestHandler):
"""
Test retrieval times of various important records in the BigTable database
"""
def get(self):
commandValidated = True
beginTime = time()
itemList = Subscriber.all().fetch(1000)
for item in itemList:
pass
endTime = time()
self.response.out.write("<br/>Subscribers count=" + str(len(itemList)) +
" Duration=" + duration(beginTime,endTime))
어떻게하면 클래스의 이름을 전달하는 함수로 바꿀 수 있습니까? 위의 예에서 Subscriber (Subscriber.all (). fetch 문)는 클래스 이름으로, Google BigTable에서 Python으로 데이터 테이블을 정의하는 방법입니다.
나는 이런 식으로하고 싶다.
TestRetrievalOfClass(Subscriber)
or TestRetrievalOfClass("Subscriber")
감사, 닐 월터스
해결법
-
==============================
1.
class TestSpeedRetrieval(webapp.RequestHandler): """ Test retrieval times of various important records in the BigTable database """ def __init__(self, cls): self.cls = cls def get(self): commandValidated = True beginTime = time() itemList = self.cls.all().fetch(1000) for item in itemList: pass endTime = time() self.response.out.write("<br/>%s count=%d Duration=%s" % (self.cls.__name__, len(itemList), duration(beginTime,endTime)) TestRetrievalOfClass(Subscriber)
-
==============================
2."this like"와 "or"사이의 코드처럼 클래스 객체를 직접 전달하면, 그 이름을 __name__ 속성으로 사용할 수 있습니다.
"this like"와 "or"사이의 코드처럼 클래스 객체를 직접 전달하면, 그 이름을 __name__ 속성으로 사용할 수 있습니다.
( "또는"뒤에 코드에서와 같이) 이름으로 시작하면 클래스 객체가 어디에 포함될 수 있는지에 대한 표시가없는 한 클래스 객체를 검색하기가 정말 어려워집니다 (모호하지 않음). 그래서 클래스 객체를 전달하지 않는 이유는 무엇입니까? 대신?!
-
==============================
3.내가 사용한 Ned 코드의 약간의 변형. 이 웹 응용 프로그램, 그래서 http : // localhost : 8080 / TestSpeedRetrieval을 통해 get 루틴을 실행하여 시작합니다. 나는 init의 필요성을 보지 못했다.
내가 사용한 Ned 코드의 약간의 변형. 이 웹 응용 프로그램, 그래서 http : // localhost : 8080 / TestSpeedRetrieval을 통해 get 루틴을 실행하여 시작합니다. 나는 init의 필요성을 보지 못했다.
class TestSpeedRetrieval(webapp.RequestHandler): """ Test retrieval times of various important records in the BigTable database """ def speedTestForRecordType(self, recordTypeClassname): beginTime = time() itemList = recordTypeClassname.all().fetch(1000) for item in itemList: pass # just because we almost always loop through the records to put them somewhere endTime = time() self.response.out.write("<br/>%s count=%d Duration=%s" % (recordTypeClassname.__name__, len(itemList), duration(beginTime,endTime))) def get(self): self.speedTestForRecordType(Subscriber) self.speedTestForRecordType(_AppEngineUtilities_SessionData) self.speedTestForRecordType(CustomLog)
산출:
Subscriber count=11 Duration=0:2 _AppEngineUtilities_SessionData count=14 Duration=0:1 CustomLog count=5 Duration=0:2
from https://stackoverflow.com/questions/1436444/python-passing-a-class-name-as-a-parameter-to-a-function by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] PIL에서 사용하도록 POST에서 base64 디코딩 (0) | 2018.11.06 |
---|---|
[PYTHON] pip 설치 PIL-E TICKETS-1 - JPEG / PNG 지원 안 함 (0) | 2018.11.06 |
[PYTHON] 목록 독해를 사용하여 튜플의 튜플을 1 차원 목록으로 변환하려면 어떻게해야합니까? [복제] (0) | 2018.11.06 |
[PYTHON] 파이썬에서 여러 부분 문자열 중 하나를 찾는 가장 효율적인 방법은 무엇입니까? (0) | 2018.11.06 |
[PYTHON] pyodbc execute () 문에서 열 이름을 반환합니다. (0) | 2018.11.06 |