bools Python передаются значением?

Труба ( http://softvelocity.com ).

я мог/мог, получают демонстрацию, по которой ударяют вместе для проекта как это в течение часов.

Один перспективный дефицит - то, что это создает исполняемые файлы Win32. Конечно, это может быть решено путем создания веб-системы с ним.

Другой - то, что Труба является определенно не открытым исходным кодом. Который оттолкнул бы много людей.

Хорошо. Мой последний комментарий был приблизительно 2 часа назад. Таким образом в то время, вот то, что мне удалось быть сделанным в Трубе.

http://125.214.67.190:5824/

я не пишу это для хвастовства. Я честно полагаю, что Труба может сделать удивительные вещи в очень короткий промежуток времени.

система "Знаний" является в значительной степени демонстрацией. Можно только добавить Теги и Отношения к родительским Узлам. Нет надлежащего поиска Тега/Отношения (только исключителен). Никакие изображения или достойный графический дизайн или UI.

, Но платформа, основа там.

7
задан Geo 29 September 2009 в 20:17
поделиться

4 ответа

Переменные Python не являются «ссылками» в смысле C ++. Скорее, это просто локальные имена, привязанные к объекту в некотором произвольном месте в памяти. Если этот объект сам изменяемый, изменения в нем будут видны в других областях, которые имеют связывает имя с объектом. Многие примитивные типы (включая bool , int , str и tuple ) являются неизменяемыми Однако . Вы не можете изменить их значение на месте; вместо этого вы назначаете новое значение с тем же именем в вашей локальной области.

Фактически, почти каждый раз * вы видите код формы foo = X ,это означает, что имени foo назначается новое значение ( X ) в вашем текущем локальном пространстве имен, а не то, что место в памяти, названное foo , имеет его внутренний указатель обновлен и теперь указывает на расположение X .

* - единственное исключение в Python - это методы установки свойств, которые могут позволить вам написать obj.foo = X и переписать его в фоновом режиме, чтобы вместо этого вызвать метод вроде obj.setFoo (X) .

* - единственное исключение из этого правила в Python - это методы установки для свойств, которые могут позволить вам написать obj.foo = X и переписать его в фоновом режиме, чтобы вместо этого вызвать метод вроде ] obj.setFoo (X) .

* - единственное исключение из этого правила в Python - это методы установки для свойств, которые могут позволить вам написать obj.foo = X и переписать его в фоновом режиме, чтобы вместо этого вызвать метод вроде ] obj.setFoo (X) .

12
ответ дан 6 December 2019 в 15:24
поделиться

Это зависит от того, объект изменяемый или неизменный. Неизменяемые объекты ведут себя так же, как вы видели с bool, тогда как изменяемые объекты изменятся.

Для справки: http://www.testingreflections.com/node/view/5126

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

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

1
ответ дан 6 December 2019 в 15:24
поделиться

Следует помнить, что нет способа в Python для функции или метода для повторного связывания имени в вызывающем пространстве имен. Когда вы пишете «Я отправил ссылку на объект типа bool и изменил его в методе», на самом деле (я предполагаю) вы сделали заново привязку имени параметра (к которому значение типа bool было привязано вызовом) внутри тело метода.

1
ответ дан 6 December 2019 в 15:24
поделиться

Короче говоря, в Python нет переменных; есть объекты (как True и False, bools неизменяемы) и имена. Имена - это то, что вы называете переменными, но имена принадлежат области, вы не можете обычно изменять имена, кроме локальных.

0
ответ дан 6 December 2019 в 15:24
поделиться
Другие вопросы по тегам:

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