>  기사  >  백엔드 개발  >  Python 변수 전달에 대한 자세한 소개

Python 변수 전달에 대한 자세한 소개

高洛峰
高洛峰원래의
2017-03-16 09:29:041861검색

python변수pass

  • 코드

num_1 = 123
num_2 = num_1
# 改变num_2值前
print 'num_1 = {0}, num_2 = {1}'.format(num_1, num_2)
num_2 = 0
# 改变num_2值后
print 'num_1 = {0}, num_2 = {1}'.format(num_1, num_2)
  • 출력

num_1 = 123, num_2 = 123
num_1 = 123, num_2 = 0
  • 결론

숫자 변수는 값으로 전달됩니다.

문자열

  • 코드

str_1 = 'hello python'
str_2 = str_1
# 改变str_2值前
print 'str_1 = {0}, str_2 = {1}'.format(str_1, str_2)
str_2 = 'hello'
# 改变str_2值后
print 'str_1 = {0}, str_2 = {1}'.format(str_1, str_2)
  • 출력

str_1 = hello python, str_2 = hello python
str_1 = hello python, str_2 = hello
  • 결론

문자열 변수도 값으로 전달됩니다.

링크된 목록

  • 코드

l_1 = [1, 2, 3, 4]
l_2 = l_1
print 'l_1 = {0}, l_2 = {1}'.format(l_1, l_2)
l_2[0] = 100  # 改变l_2的第一个元素
print 'l_1 = {0}, l_2 = {1}'.format(l_1, l_2)
l_2 = [1,1,1] # 改变l_2的全部元素
print 'l_1 = {0}, l_2 = {1}'.format(l_1, l_2)
  • 출력

l_1 = [1, 2, 3, 4], l_2 = [1, 2, 3, 4]
l_1 = [100, 2, 3, 4], l_2 = [100, 2, 3, 4]
l_1 = [100, 2, 3, 4], l_2 = [1, 1, 1]
  • 결론

위 출력에서 ​​볼 수 있듯이 l_1과 l_2의 함수는 c/C++의 포인터와 유사하며, 함수 of l_2 = l_1 l_2와 l_1이 같은 메모리를 가리키는 것과 동일하며, 내용은 [1, 2, 3, 4]이다. l_2[0] = 100이면 l_1의 첫 번째 요소도 변경됩니다. l_2 = [1,1,1]은 l_2가 다른 메모리 조각을 가리키도록 하며 이는 l_1의 내용에 영향을 주지 않습니다.

사전

  • 코드

d_1 = {'a': 1, 'b': 2, 'c': 3}
d_2 = d_1
print 'd_1 = {0}, d_2 = {1}'.format(d_1, d_2)

d_2['c'] = 10
print 'd_1 = {0}, d_2 = {1}'.format(d_1, d_2)

d_2 = {'e': 12, 'f': 15}
print 'd_1 = {0}, d_2 = {1}'.format(d_1, d_2)
  • 출력

d_1 = {'a': 1, 'c': 3, 'b': 2}, d_2 = {'a': 1, 'c': 3, 'b': 2}
d_1 = {'a': 1, 'c': 10, 'b': 2}, d_2 = {'a': 1, 'c': 10, 'b': 2}
d_1 = {'a': 1, 'c': 10, 'b': 2}, d_2 = {'e': 12, 'f': 15}
  • 결론

출력 결과는 dict와 list가 동일한 속성을 가지고 있음을 보여줍니다. 직접 할당은 참조를 전달하는 것과 유사합니다. C++ .

객체

  • 코드

class Point:
    def init(self, x, y):
        self.x = x
        self.y = y
    def str(self):
        return ''.join(['x = ', str(self.x), ' ', 'y = ', str(self.y)])

p_1 = Point(12,34)
p_2 = p_1
print 'p_1: {0};  p_2: {1}'.format(p_1, p_2)

p_2.x = 122
print 'p_1: {0};  p_2: {1}'.format(p_1, p_2)

p_2 = Point(89, 978)
print 'p_1: {0};  p_2: {1}'.format(p_1, p_2)
  • 출력

p_1: x = 12 y = 34;  p_2: x = 12 y = 34
p_1: x = 122 y = 34;  p_2: x = 122 y = 34
p_1: x = 122 y = 34;  p_2: x = 89 y = 978
  • 결론

사용자 지정 개체도 할당 프로세스 중에 참조로 전달됩니다.

요약

Python에서는 할당 프로세스 중에 숫자 값과 문자열이 값으로 전달되며, 할당 프로세스 중에 목록, 사전 및 개체는 기본적으로 참조로 전달됩니다. 값을 전달해야 하는 경우 copy 모듈에서 copy 및 deepcopy 기능을 사용할 수 있습니다.

위 내용은 Python 변수 전달에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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