2016-07-06 7 views
1

내가 람다 식의 개념을 조금 고군분투이 람다 표현식 사용법을 설명하고 내가 여기에이 코드 조각을 준비해주십시오나에게 파이썬

nav.add_branch(
'containers_pods', 
{ 
    'containers_pod': 
    [ 
     lambda ctx: list_tbl.select_row_by_cells(
      {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}), 
     { 
      'containers_pod_edit_tags': 
      lambda _: pol_btn('Edit Tags'), 
     } 
    ], 
    'containers_pod_detail': 
    [ 
     lambda ctx: list_tbl.click_row_by_cells(
      {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}), 
     { 
      'containers_pod_timelines_detail': 
      lambda _: mon_btn('Timelines'), 
      'containers_pod_edit_tags_detail': 
      lambda _: pol_btn('Edit Tags'), 
     } 
    ] 
} 

)

누군가가 나를을 설명해 주시겠습니까를 여기 람다 식의 사용법? 이 코드의 더는 여기에 있습니다 :

https://github.com/ManageIQ/integration_tests/blob/093f4cf42127e2f98cc01d91fc2d4db487543ca1/cfme/containers/pod.py#L11-L35

감사합니다!

+0

"설명하시오"는 무엇을 의미합니까? 구문을 의미합니까? 람다는 실제로 무엇을합니까? 이 시점에서 왜 유용하게 사용합니까? – MisterMiyagi

+0

@bakkal이 그것을 잘 설명했습니다 –

+0

그럼 귀하의 질문에 명확하게하시기 바랍니다 다른 사람들이 그것을 읽고 전체 스레드를 보지 않고 그것을 알기 바랍니다. – MisterMiyagi

답변

1

주면서 정신적으로 당신이 lambda _:

def function_1(ctx): 
    return list_tbl.select_row_by_cells(
     {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name} 
    ) 

def function_2(_): 
    return pol_btn('Edit Tags') 


[ 
    function_1, 
    { 
     'containers_pod_edit_tags': 
     function_2, 
    } 
] 

밑줄 _로이 블록

[ 
    lambda ctx: list_tbl.select_row_by_cells(
     {'Name': ctx['pod'].name, 'Provider': ctx['provider'].name}), 
    { 
     'containers_pod_edit_tags': 
     lambda _: pol_btn('Edit Tags'), 
    } 
] 

를 대체 할 수있는 익명 함수이다하면, 사용하지 않을거야 변수에 대한 convention in Python입니다 " "람다/함수가 인수 _을 사용하고 있지 않음을 알 수 있듯이,

+0

이것은 갑자기 훨씬 더 명확 해졌습니다. 정말 고마워요! –