>  기사  >  백엔드 개발  >  Python 전달 방법은 무엇입니까? Python 매개변수 전달을 이해하려면 이 기사를 빠르게 읽어보세요.

Python 전달 방법은 무엇입니까? Python 매개변수 전달을 이해하려면 이 기사를 빠르게 읽어보세요.

Tomorin
Tomorin원래의
2018-08-14 14:22:251640검색

이 글은 Python 매개변수 전달 방법에 관한 글입니다. 주로 Python 매개변수변수 매개변수 정의와 Python 매개변수 전달 방법을 소개합니다. 구체적인 분석은 다음과 같습니다.

소위 Python 매개변수

python 매개변수에서 유형은 객체에 속하며 변수에는 유형이 없습니다.

a=[1,2,3]
 a="PHPCN"

위 코드에서 [1 ,2,3]은 List 유형이고 "PHPCN"은 String 유형이며 변수 a는 유형이 없습니다. 이는 List 유형 객체 또는 String 유형 객체일 수 있는 객체(포인터)에 대한 참조일 뿐입니다.

⊙ 가변 및 불변 객체

파이썬에서 문자열, 튜플, 숫자는 불변 객체이고 리스트, 딕셔너리 등은 수정 가능한 객체입니다.

·불변형: 변수에 a=5가 할당된 후 a=10이 할당됩니다. 여기서 실제로는 새로운 int 값 객체 10이 생성된 다음 a가 이를 가리키고 5가 삭제됩니다. Yu Xin이 a를 만든 것과 동일한 a의 값을 변경하지 않습니다.

·변수 유형: 변수 할당 la=[1,2,3,4] 및 la[2]=5 할당은 목록 la의 세 번째 요소의 값을 변경합니다. La 자체는 이동되지 않지만 일부 내부 값이 수정되었습니다.

Python 매개변수 전달 방법:

·불변 유형: 정수, 문자열, 튜플과 같은 C++와 유사한 값 전달. 예를 들어 fun(a)는 a의 값만 전송하고 a 객체 자체에는 영향을 주지 않습니다. 예를 들어 내부 fun(a)의 값을 수정하면 복사된 다른 객체만 수정되고 객체 자체에는 영향을 주지 않습니다.

·변수 유형: 목록 및 사전과 같은 C++ 참조 전달과 유사합니다. 예를 들어 fun(la)은 la가 실제로 전달된다는 의미입니다. 수정 후에는 fun 외부의 la도 영향을 받습니다. 엄격한 의미에서 값으로 전달되는지 아니면 참조로 전달되는지 말할 수 없습니다. . 변경 가능한 객체를 전달할 수 없으며 변경 가능한 객체를 전달할 수도 없습니다.

⊙python은 불변 객체 인스턴스를 전달합니다

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 def ChangeInt( a ):    
 a = 10
 b = 2ChangeInt(b)
 print b # 结果是 2
인스턴스에 int 객체 2가 있고 이를 가리키는 변수는 b입니다. ChangeInt 함수에 전달되면 변수 b, a 및 b는 모두 동일한 Int 개체를 가리킵니다. a=10이면 새 int 값 개체 10이 생성되고 a가 이를 가리킵니다.

⊙가변 객체 인스턴스 전달

 #!/usr/bin/python
 # -*- coding: UTF-8 -*-
 # 可写函数说明def changeme( mylist ):   
"修改传入的列表"
   mylist.append([1,2,3,4]);   
 print "函数内取值: ", mylist
   return
 # 调用changeme函数
 mylist = [10,20,30];
 changeme( mylist );
 print "函数外取值: ", mylist
인스턴스에 전달된 함수와 마지막에 새 내용을 추가하는 객체는 동일한 참조를 사용하므로 출력 결과는 다음과 같습니다.
函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

클래스 후 확장:

자세한 예제와 함께 Python 사용자 정의 함수와 Python 함수 반환 값을 하나의 기사에서 읽어보세요

위 내용은 Python 전달 방법은 무엇입니까? Python 매개변수 전달을 이해하려면 이 기사를 빠르게 읽어보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.