Если все, что вы хотите сделать, это запустить ваш скрипт Python на компьютере с Windows, на котором установлен Python Interpreter, преобразование расширения вашего сохраненного скрипта с '.py' на '.pyw' должно сделать трюк.
Но если вы используете py2exe для преобразования вашего сценария в автономное приложение, которое будет запускаться на любой машине Windows, вам нужно внести следующие изменения в ваш файл setup.py.
Следующий пример представляет собой простой python-GUI, созданный с использованием Tkinter:
from distutils.core import setup
import py2exe
setup (console = ['tkinter_example.pyw'],
options = { 'py2exe' : {'packages':['Tkinter']}})
Измените «консоль» в приведенном выше коде на «windows» ..
from distutils.core import setup
import py2exe
setup (windows = ['tkinter_example.pyw'],
options = { 'py2exe' : {'packages':['Tkinter']}})
Это откроет только созданный графический интерфейс Tkinter и отсутствие окна консоли.
Kotlin не вызывает ошибок в случае переполнения целых чисел. Kotlin основан на JVM, поэтому он также не имеет неподписанных типов. Таким образом, вы можете просто добавить значения:
val hash : Int = ...
val bytes : ByteArray = ...
hash += bytes[i]
Конечно, Byte
также подписан в Kotlin, поэтому вам может потребоваться преобразование значений при его расширении:
val byte : Byte = bytes[i]
val byteAsInt : Int = byte.toInt()
if (byteAsInt < 0) byteAsInt = 255 + byteAsInt + 1
hash += byteAsInt
Подобного оператора нет, но Котлин может сделать то же самое:
val a: Byte = 100
val b: Byte = 121
val x: Byte = (((a + b) shl 8) shr 8).toByte()
println(x)
, поэтому оператор может быть создан:
infix fun Byte.`&+`(b: Byte): Byte = (((this + b) shl 8) shr 8).toByte()
и используется следующим образом:
val a: Byte = 100
val b: Byte = 121
val x: Byte = a `&+` b
println(x)
Я планирую использовать этот java-код из моего файла kotlin:
public static byte addBytesWithOverflow(byte a, byte b) {
int val = (a + b) & 0xFF;
return (byte) val;
}