찾다
백엔드 개발파이썬 튜토리얼Python3의 비로컬과 글로벌의 사용법과 차이점 소개(예제 포함)

이 글은 Python3의 비로컬과 글로벌의 사용법과 차이점을 소개합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

키워드 nonlocal

Python 2.x에서 클로저는 외부 함수의 변수를 읽을 수만 있고 덮어쓸 수는 없습니다. 이 문제를 해결하기 위해 Python 3.x에서는 클로저 내에서 nonlocal로 변수를 선언하면 인터프리터가 외부 함수에서 변수 이름을 찾을 수 있습니다.

참고: nonlocal: 키워드는 python3에 나타납니다. 전역 범위는 현재 코드가 위치한 모듈의 범위를 나타내고, 로컬 범위는 현재 함수나 메서드의 범위를 나타냅니다. 로컬 범위의 코드는 외부 범위(전역 범위 포함)의 변수를 읽을 수 있지만 변경할 수는 없습니다. 변경하려면 여기에서 global 키워드를 사용해야 합니다

Example

nonlocal 키워드의 기능은 global 키워드와 유사합니다. nonlocal 키워드를 사용하면 중첩 함수에서 중첩 범위의 변수를 수정할 수 있습니다. .

두 가지 예를 살펴보세요

예제 1

name = 'pythontab'
def func()
global name
name = 'pythontab.com'
func()
print(name)

결과:

pythontab.com

예제 2

def func():
name = 'pythontab'
def foo():
    nonlocal name
    name = 'pythontab.com'
foo()
print(name)
func()

결과:

pythontab.com

예제 2에서는 전역 키워드가 name 값을 변경하는 데 사용되지 않습니다.

요약

주요 차이점은 다음과 같습니다.

둘의 기능은 다릅니다. global 키워드로 변수를 수정하면 전역변수로 표시됩니다. 변수를 수정하면 전역변수로 수정됩니다. nonlocal 키워드로 수정하면 상위 함수에서 지역변수로 표시됩니다. 상위 함수에 지역 변수가 없으면 이 지역 변수가 있으면 비지역 위치에서 오류가 발생합니다. (비지역 수정 변수를 사용하는 최상위 함수는 반드시 오류를 보고합니다.)

    둘은 사용범위가 다릅니다. global 키워드는 최상위 함수, 중첩 함수 등 어디에서나 사용할 수 있으며, 이전에 변수를 정의하지 않은 경우에도 전역 수정 후 바로 사용할 수 있는 반면, nonlocal 키워드는 중첩 함수에서만 사용할 수 있으며, 외부 해당 지역 변수는 레이어 함수에 정의되어 있습니다. 그렇지 않으면 오류가 발생합니다(1 참조)

위 내용은 Python3의 비로컬과 글로벌의 사용법과 차이점 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
파이썬에서 튜플 이해력이 가능합니까? 그렇다면, 어떻게 그리고 그렇지 않다면?파이썬에서 튜플 이해력이 가능합니까? 그렇다면, 어떻게 그리고 그렇지 않다면?Apr 28, 2025 pm 04:34 PM

기사는 구문 모호성으로 인해 파이썬에서 튜플 이해의 불가능성에 대해 논의합니다. 튜플을 효율적으로 생성하기 위해 튜플 ()을 사용하는 것과 같은 대안이 제안됩니다. (159 자)

파이썬의 모듈과 패키지는 무엇입니까?파이썬의 모듈과 패키지는 무엇입니까?Apr 28, 2025 pm 04:33 PM

이 기사는 파이썬의 모듈과 패키지, 차이점 및 사용법을 설명합니다. 모듈은 단일 파일이고 패키지는 __init__.py 파일이있는 디렉토리이며 관련 모듈을 계층 적으로 구성합니다.

파이썬에서 Docstring이란 무엇입니까?파이썬에서 Docstring이란 무엇입니까?Apr 28, 2025 pm 04:30 PM

기사는 Python의 Docstrings, 사용법 및 혜택에 대해 설명합니다. 주요 이슈 : 코드 문서 및 접근성에 대한 문서의 중요성.

람다 기능이란 무엇입니까?람다 기능이란 무엇입니까?Apr 28, 2025 pm 04:28 PM

기사는 Lambda 기능, 일반 기능과의 차이 및 프로그래밍 시나리오에서의 유틸리티에 대해 설명합니다. 모든 언어가 그들을 지원하는 것은 아닙니다.

휴식은 무엇입니까, 계속해서 파이썬을 통과합니까?휴식은 무엇입니까, 계속해서 파이썬을 통과합니까?Apr 28, 2025 pm 04:26 PM

기사는 파괴, 계속 및 Python을 통과시켜 루프 실행 및 프로그램 흐름을 제어하는 ​​역할을 설명합니다.

파이썬의 패스는 무엇입니까?파이썬의 패스는 무엇입니까?Apr 28, 2025 pm 04:25 PM

이 기사는 기능 및 클래스와 같은 코드 구조에서 자리 표시 자로 사용되는 NULL 작업 인 Python의 'Pass'명령문에 대해 설명하여 구문 오류없이 향후 구현을 허용합니다.

파이썬에서 인수로 기능을 전달할 수 있습니까?파이썬에서 인수로 기능을 전달할 수 있습니까?Apr 28, 2025 pm 04:23 PM

기사는 파이썬의 인수와 같은 기능을 전달하는 것에 대해 논의하며, 모듈성과 같은 이점 및 분류 및 장식기와 같은 사용 사례를 강조합니다.

파이썬에서 //의 차이점은 무엇입니까?파이썬에서 //의 차이점은 무엇입니까?Apr 28, 2025 pm 04:21 PM

기사는 Python의 / 및 // 연산자에 대해 논의합니다 : / True Division, // for floor division. 주요 이슈는 차이점과 사용 사례를 이해하는 것입니다. 문자 수 : 158

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.