루프... 우리가 가고 있는 곳에는 루프가 필요하지 않습니다

3609 단어
여러 다른 코딩 및 IAC 주제에 대한 많은 것 중 첫 번째입니다.

루프에 반대하는 것은 없지만 루프에서 주요 문제 중 하나는 여러 조건문if이 있거나 루프에서 발생하는 다양한 논리 비트가 있을 때 반복하기가 특히 어려울 수 있다는 것입니다.

Python에서 map()를 다루고 싶었습니다. for 루프가 필요할 때 코드의 양을 줄이는 것이 제가 가장 좋아하는 것 중 하나입니다.
map()는 다음과 같이 정의됩니다.

map(function, iterable[, iterable1, iterable2,..., iterableN])

map() 함수를 사용하면 여기에서 두 가지 일이 진행되고 있음을 알 수 있습니다. 함수와 전달하는 객체가 있습니다. 전달하는 객체는 list , tuple 등이 될 수도 있습니다.

내 예에서는 인프라를 코드 모듈로 사용하기 위해 전달되는 변수 파일에서 오는 범위 목록을 가져옵니다. API 게이트웨이에 적용할 특정 방식으로 범위를 포맷해야 합니다.

아래 예에는 API에 적용해야 하는 범위 집합을 형식화, 구문 분석 및 구조화하는 데 사용한 아주 간단한 양의 코드가 있습니다.

API_SCOPES = "read:stuff, write:stuff, delete:stuff"


누군가 문자열에 공백, 즉 공백을 추가했을 수 있는 추가 보호 기능을 추가하기 위한 것입니다. 추가 공백을 제거하기 위해 추가 문을 추가한 다음 쉼표로 분할합니다.

['read:stuff', 'write:stuff', 'delete:stuff']


결과는 원래 쉼표로 구분된 문자열의 모든 범위를 포함하는 list입니다.

API_SCOPES = "read:stuff, write:stuff, delete:stuff"
DOMAIN_NAME = "api.example.com"

def api_authorization_scopes(name: str) -> str:
    """
    Takes a string of scopes and returns a list of properly formatted scopes.

    Args:
        name (str): The scope string

    Returns:
        Optional[str]: Formatted scope string

    """
    return f"https://{DOMAIN_NAME}/{name}"

parsed_scopes = API_SCOPES.replace(' ', '').split(",")
allowed_oauth_scopes = map(api_authorization_scopes, parsed_scopes)


그러면 목록으로 출력할 수 있는 map 객체가 생성되며 다음과 같이 표시됩니다.

['https://api.example.com/read:stuff', 'https://api.example.com/write:stuff', 'https://api.example.com/delete:stuff']

좋은 웹페이지 즐겨찾기