Труба ( http://softvelocity.com ).
я мог/мог, получают демонстрацию, по которой ударяют вместе для проекта как это в течение часов.
Один перспективный дефицит - то, что это создает исполняемые файлы Win32. Конечно, это может быть решено путем создания веб-системы с ним.
Другой - то, что Труба является определенно не открытым исходным кодом. Который оттолкнул бы много людей.
Хорошо. Мой последний комментарий был приблизительно 2 часа назад. Таким образом в то время, вот то, что мне удалось быть сделанным в Трубе.
я не пишу это для хвастовства. Я честно полагаю, что Труба может сделать удивительные вещи в очень короткий промежуток времени.
система "Знаний" является в значительной степени демонстрацией. Можно только добавить Теги и Отношения к родительским Узлам. Нет надлежащего поиска Тега/Отношения (только исключителен). Никакие изображения или достойный графический дизайн или UI.
, Но платформа, основа там.
Переменные 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)
.
Это зависит от того, объект изменяемый или неизменный. Неизменяемые объекты ведут себя так же, как вы видели с bool, тогда как изменяемые объекты изменятся.
Для справки: http://www.testingreflections.com/node/view/5126
Python передает ссылки на объекты по значению (например, Java), и все в Python является объектом. Это звучит просто, но затем вы заметите, что некоторые типы данных, похоже, демонстрируют характеристики передачи по значению, в то время как другие, похоже, действуют как передача по ссылке ... что? В чем дело?
Важно понимать изменчивые и неизменяемые объекты. Некоторые объекты, такие как строки, кортежи и числа, неизменяемы. Их изменение внутри функции / метода приведет к созданию нового экземпляра, а исходный экземпляр вне функции / метода не изменится. Другие объекты, такие как списки и словари, являются изменяемыми, что означает, что вы можете изменять объект на месте. Следовательно, изменение объекта внутри функции / метода также изменит исходный объект снаружи.
Следует помнить, что нет способа в Python для функции или метода для повторного связывания имени в вызывающем пространстве имен. Когда вы пишете «Я отправил ссылку на объект типа bool и изменил его в методе», на самом деле (я предполагаю) вы сделали заново привязку имени параметра (к которому значение типа bool было привязано вызовом) внутри тело метода.
Короче говоря, в Python нет переменных; есть объекты (как True и False, bools неизменяемы) и имена. Имена - это то, что вы называете переменными, но имена принадлежат области, вы не можете обычно изменять имена, кроме локальных.