Передача значений в Python [дубликат]

У вас должна возникнуть идея, почему вы получаете эту проблему после прохождения вышеупомянутых ответов.

self.send_header('Access-Control-Allow-Origin', '*')

Вам просто нужно добавить указанную выше строку на стороне вашего сервера.

61
задан Joan Venge 10 February 2009 в 21:51
поделиться

6 ответов

Python передает ссылки на объекты значением .

Python передает ссылки на объекты значением (как Java), и все в Python - объект. Это звучит простым, но затем Вы заметите, что некоторые типы данных, кажется, показывают характеристики передачи значением, в то время как другие, кажется, действуют как передача ссылкой..., каково соглашение?

важно понять изменяемые и неизменные объекты. Некоторые объекты, как строки, кортежи, и числа, неизменны. Изменение их в функции/методе создаст новый экземпляр, и исходный экземпляр вне функции/метода не изменяется. Другие объекты, как списки и словари изменяемы, что означает, что можно изменить оперативный объект. Поэтому изменение объекта в функции/методе также изменит исходный объект снаружи.

81
ответ дан Stephen 7 November 2019 в 13:27
поделиться

Вещь, целое понятие ссылки/значения не впишется в Python. Python не имеет никакого "значения" переменной. Python имеет только объекты и имена, которые относятся к объектам.

Поэтому, когда Вы вызываете функцию и ставите "имя" в круглой скобке, как это:

def func(x): # defines a function that takes an argument
    ... # do something here

func(myname) # calling the function

фактический объект, который myname указывает, передается, не имя myname само . В функции другое имя (x) дано для обращения к тому же переданному объекту.

можно изменить объект в функции, если это изменяемо, но Вы не можете изменить то, на что внешнее имя указывает . Все равно это происходит, когда Вы делаете

anothername = myname

Поэтому, я могу ответить на Ваш вопрос с:

это - "передача значением", но все значения являются просто ссылками на объекты.

70
ответ дан nosklo 7 November 2019 в 13:27
поделиться

Ссылка передается, но если параметр будет неизменным объектом, то изменение его в рамках метода создаст новый экземпляр.

6
ответ дан ChrisF 7 November 2019 в 13:27
поделиться

Объект передается. Не копия, а ссылка на основной объект.

4
ответ дан S.Lott 7 November 2019 в 13:27
поделиться

Я также рекомендовал бы смотреть copy модуль:

документация Python для копии

Это поможет Вам понять базовые проблемы и как использовать ее для выполнения собственной глубокой копии.

3
ответ дан Matt 7 November 2019 в 13:27
поделиться

Ссылкой:

>>> x = [0,1,2,3]
>>> def foo(x_list):
    x_list[0] = 1


>>> foo(x)
>>> x
[1, 1, 2, 3]
2
ответ дан Harper Shelby 7 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: