기본 Python 범위를 흐트러뜨리지 마십시오.

1240 단어 pythondiscuss
globalnonlocal 키워드를 너무 자주 사용해서는 안 된다.나는 디버깅과 읽기가 매우 어렵다고 생각한다.새로 온 사람들은 대국을 코드의 원시 저자로 보지 않을 수도 있다.따라서 이 테스트를 사용할 때, 미래에 파괴되지 않고, 이해하기 쉽도록 엄밀한 테스트 집합을 유지한다.나는 어떻게 사용하는지 이해하기 위해 읽기 테스트를 하는 경향이 있다.
왜 안 써요? -나는 이것이 코드를 그렇게 모듈화하지 않게 한다고 생각한다.그래서 같은 코드 단원에서만 사용한다.
예를 들어,
https://github.com/aws-samples/aws-concurrent-data-orchestration-pipeline-emr-livy/blob/master/dags/airflowlib/emr_lib.py

def client(region_name):
    global emr  # <-- (1)
    emr = boto3.client ('emr', region_name=region_name)

... other functions...

def get_cluster_dns(cluster_id):
    response = emr.describe_cluster(ClusterId=cluster_id)
    return response['Cluster']['MasterPublicDnsName']

... other functions...
나는 이것이 좋은 예라고 생각하지 않는다. (나는 차라리 이 함수들을 emr 속성을 가진 클래스에 수집하고 싶다.) 그러나 적어도 그것은 이해할 수 있다.컴파일러는 먼저 "client"방법을 호출해서 초기화한 다음에 이 파일의 다른 함수를 호출할 계획이다.
언제 정확하게 사용할 것인지globalnonlocal를 설명하는 다른 예를 생각해 낼 수 있다면 토론에서 논평을 해 주십시오.

좋은 웹페이지 즐겨찾기