사전을 'locals'와 매우 흡사하게 사용하고 싶지만 함수의 제한된 범위에있는 변수 만 포함하는 상황에서 계속 끝납니다 . 파이썬에서이 작업을 수행 할 수있는 방법이 있습니까?파이썬에서만 함수 범위에 대한 로컬 사전 가져 오기
왜 내가 이것을하고 싶은지 조금 더 : 나는 장고와 놀고 있는데, 내 템플릿 컨텍스트를 제공 할 때 수동으로 사전을 만들거나 (DRY 원칙을 위반 함) 더 많은 항목을 포함하고있는 지역 주민()은 필요합니다 (낭비). 거기에 아마도 내가 Python 수준의 솔루션의 필요성을 완화 것이 장고로 실종 됐어?
가 명확히하려면
그래서, 반복적으로 공격 한 경우는 내가 가지고있는 곳입니다 :
@render_to('my_template.html')
def myview(request):
var1 = #blahblah
var2 = #...
# do stuff with vars
return {'var1': val1,'var2':val2}
을 그래서 그 대신 그 변수를 반복하고 명명 규칙, 내가 할 수있는 것들 :
@render_to('my_template.html')
def myview(request):
var1 = #blahblah
var2 = #...
# do stuff with vars
return locals()
나는 청소기를 찾았지만 현지인()에 약 30 개 이상의 항목이 있으므로 그 종류가 조금은 알 수 있습니다. 그러면 실제로 필요합니다.
"수동으로 사전 작성 (DRY 원칙을 위반 함)"무엇이 사전을 DRY 위반으로 만드는가? –
이 특정 상황을 의미하는 것입니다. 변수 (var = blahblah)를 선언하고 몇 줄 뒤에 { 'var': var}을 사용하면 이름 지정을 반복하는 것처럼 보일 것입니다.4 개 또는 5 개의 변수를 사용하면 귀찮고 지저분 해집니다. – Albinofrenchy
나는 눈치 채지 못했다. 먼저 뷰 기능에 많은 로컬 변수를 만들지 않습니다. 일반적으로 몇 가지. 처리가 복잡하면 view 함수에서 처리를 해제합니다. 둘째, 뷰 함수의 일부가 아니지만 사전에서만 작성되는 상황 별 정보로 사전을로드하는 경우가 있습니다. 반복은 일반적으로 객체, object_list 및 때로는 요청에서 가져온 키 또는 두 개만 두세 가지입니다. –