Это оптимизация производительности. В результате этой функциональности, какой из этих двух вызовов функций вы считаете более быстрым?
def print_tuple(some_tuple=(1,2,3)):
print some_tuple
print_tuple() #1
print_tuple((1,2,3)) #2
Я дам вам подсказку. Вот разборка (см. http://docs.python.org/library/dis.html ):
#
1 0 LOAD_GLOBAL 0 (print_tuple)
3 CALL_FUNCTION 0
6 POP_TOP
7 LOAD_CONST 0 (None)
10 RETURN_VALUE
#
2 0 LOAD_GLOBAL 0 (print_tuple)
3 LOAD_CONST 4 ((1, 2, 3))
6 CALL_FUNCTION 1
9 POP_TOP
10 LOAD_CONST 0 (None)
13 RETURN_VALUE
Я сомневаюсь, что опытное поведение имеет практическое применение (кто действительно использовал статические переменные в C без размножающихся ошибок?)
] Как вы можете видеть, - преимущество производительности при использовании неизменяемых аргументов по умолчанию. Это может иметь значение, если это часто называемая функция или аргумент по умолчанию занимает много времени, чтобы построить. Кроме того, имейте в виду, что Python не C. В C у вас есть константы, которые в значительной степени свободны. В Python у вас нет этого преимущества.
Вам также нужно переключить переменную среды пути, чтобы указать ее в каталог JRE bin. Кроме того, я думаю, что современные версии java помещают копию «java.exe» в каталог system32 Windows, вам нужно будет удалить их (или переименовать их, если вы хотите сохранить их как резервные копии).
Так как Java поддерживает опцию командной строки «-версия». Вы можете использовать эту функцию для выбора конкретной версии для запуска, например:
java -version:1.7 -jar [path to jar file]
запустит приложение jar в java 1.7, если оно установлено.
См. Документацию Oracle здесь: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html
JAVA_HOME
не используется java.exe.
Обязательно укажите путь к каталогу Java 6 JRE bin
в переменной окружения PATH, до Java JRE, и перед системным каталогом Windows (system32).
Или вы можете использовать полный путь к команде java:
c:\java6\bin\java com.foo.bar.Main
Windows использует переменную среды PATH
, а не JAVA_HOME
для выполнения исполняемых файлов, включая Java-приложение launcher java.exe. Хотя переменная среды JAVA_HOME
может использоваться в переменной среды PATH
, это не обязательно, поэтому вы должны изменить переменную среды PATH
для использования JAVA_HOME
или нового дома установки Java 6.