하자의 해체는 :
$class->categories
이것은 $class
개체의 categories
속성을 액세스합니다. 파이썬에서의 그 : 이것은 배열의 특정 키에 액세스
categories[$cat->category_parent_id]
, 파이썬에있을 것이라고 : 당신은이 작업을 수행 할 수 있기 때문에
는
klass.categories # (class is a reserved keyword, using klass instead)
우리는 categories
여기 dict
이라고 가정합니다 dict
의 키
categories[cat.category_parent_id]
이제 까다로운 부분 :
...[] = $cat
그러면 $cat
이 배열로 푸시됩니다. 파이썬에서는 에 값인 append
을 의미합니다. 존재하지 않으면 PHP는 암시 적으로 필요한 새 하위 배열을 만듭니다. 파이썬은 그렇지 않습니다. 이것은 약간의 추가 고려가 필요한 유일한 부분입니다. 당신이 알아야 할 것은 categories[cat.category_parent_id]
이 귀하의 dict
에 이미 존재하는지 또는 그 과정에서 생성할지 여부입니다. 당신이 categories
이 list
s의 dict
가하는 모든 cat.category_parent_id
키가 이미 미리 채워져있는 경우가 존재 알고 있다면
가, 다음이만큼 간단합니다 그러나
klass.categories[cat.category_parent_id].append(cat)
, 키의 경우 돈 ' 존재하지 않는다면 생성 된 것을 확인하고 처음으로 액세스 할 때 값이 list
으로 설정되어야합니다. 파이썬에서 그에게 가장 컴팩트 한 표기법은 dict.setdefault
방법 : categories[cat.category_parent_id]
이있는 경우
klass.categories.setdefault(cat.category_parent_id, []).append(cat)
, 그것은 반환 당신은 그것에 append
을 할 수 있습니다. 존재하지 않으면 생성되고 []
으로 초기화 된 다음 반환됩니다.
StackOverflow는 코드 번역 서비스가 아닙니다 – naomik
편도는 python을 배울 수 있습니다. 다른 하나는 파이썬을 아는 인턴을 고용하는 것입니다. –