기능
Function 객체
- 기능은 일류 객체
- 함수 이름이 있습니다 참조 할 수
- 함수 이름으로 사용할 수있는 매개 변수 사용하기
- 함수 이름은 다음과 같이 사용할 수있는 반환 값의 사용
- 함수 이름으로서 사용될 수있는 컨테이너 타입 요소
중첩 된 기능
중첩 호출 : 함수 내부 함수를 호출
중첩 정의 : 함수는 함수 내부에서 정의
네임 스페이스
저장 변수의 이름 으로 나누어 공간, 내장 된 네임 스페이스 , 글로벌 네임 스페이스 , 로컬 이름 공간
내장 네임 스페이스 : 파이썬, 사전에 정의 된 이름은,이 내장되어 공간. 예를 들어 키워드, 내장 방법
글로벌 네임 스페이스 : 파일 수준 이름에 저장 글로벌 이름 공간입니다
IF / 그동안 / 위해 내부적으로 정의 의 이름으로 실행 한 후 글로벌 이름 공간에 저장됩니다
# if 的示例: var = 4 if var > 5: var = "var 大于5" else: var = "var 小于等于5" print(var) # 打印结果:var 小于等于5 # while 的示例: num = 0 while num <= 3: num += 1 print(num) # 打印结果:4 # for 的示例 for i in range(2): pass print(i) # 打印结果:1
로컬 이름 공간 : 내부 함수의 정의는 모든 이름은 내장 된 네임 스페이스 기능은 현재에 저장됩니다
당신이 변수 값에 액세스하려면 먼저 이름과 변수의 메모리 주소의 이름과 값 사이의 관계에 해당 이름 공간, 액세스에 액세스해야합니다.
라이프 사이클
- 내장 네임 스페이스 : 파이썬 인터프리터 를 시작 시행한다, 폐쇄 실패
- 글로벌 네임 스페이스 : 현재 파이썬 파일 강제로 실행, 실행의 실패 후
- 로컬 네임 스페이스 : 함수 호출시에, 효력이 함수 본문 코드 의 끝에 경과
순서를 찾기
지역 이름 : 지역 → 지구 → 내장 함수
글로벌 이름 : 글로벌 → 내장
내장 오류 다시 찾을 수 없습니다
내부 기능 에 사용되는 이름 정의 단계 와, 죽은 지정되어 위치를 호출하는 것도
범위
- 글로벌 범위 : 글로벌 캔 호출 이름은 전역 범위에 존재합니다. 내장 네임 스페이스와 글로벌 네임 스페이스 여기에 속한다
지역 범위 : 지역이 이름이 로컬 범위에 존재 호출 할 수 있습니다. 여기에 속한 로컬 이름 공간
회사 무료 가입 다음 로컬 네임 스페이스 변수로 선언 된 전역 변수
참고 : 회사 무료 함수 내에서 선언에 참여 함수 외부 문, 함수가 여전히 작동하지 않으면,
# 这种情况不能修改x1的值 x1 = 1 def func1(): x1 = 2 func1() print(x1) # 打印结果:1 # 使用global 后,可以修改x2的值 x2 = 1 def func2(): global x2 # 先声明成全局变量 x2 = 2 func2() print(x2) # 打印结果:2 # global 若在函数外声明,无法操作变量 global x3 x3 = 1 def func2(): x3 = 2 func3() print(x3) # 打印结果:1
로컬이 아닌 :에서 로컬 네임 스페이스 선언의 로컬 변수를 .
비 로컬 변수 선언 후에 변수를 찾아 현재 함수의 함수의 외부 층으로부터 시작한다. 가장 바깥 쪽 함수에 대한 모든 방법을 찾을 수없는 경우 예외가 발생합니다.
def f3(): x = 4 def f1(): y = 2 def f2(): nonlocal x x = 3 f2() # 调用f2(),修改f1作用域中名字x的值 print(x) # 在f1作用域查看x。打印结果:3 f1() print(x) # 打印结果:3 f3()
def f3(): x = 4 def f1(): x = 2 def f2(): nonlocal x x = 3 f2() # 调用f2(),修改f1作用域中名字x的值 print(x) # 在f1作用域查看x。打印结果:3 f1() print(x) # 打印结果:4 f3()