TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #199 · 8 јан.

Многие из тех кто активно работал с Python2 несколько удивлены, почему в Python3 удобная функция reload() переехала из builtin в imp а потом и в importlib? Ну было же удобно! А теперь лишний импорт😖 Дело в том, что начиная с Python3.3 функция reload() переписана на Python вместо Cи. Что это нам даёт? 🔸 Такой код проще поддерживать и развивать 🔸 Python код легче читать, изучать и понимать. Сравните это ➡️ и это ➡️. 🔸 Как результат пункта 2, проще писать свои расширения импорта. Например, пользовательский импортёр с какой-либо хитрой логикой по аналогии с импортом из zip архивов. А есть ли у этого решения недостатки? Да, они всегда есть. 🔹 Так как это не builtin функция, её следует импортнуть перед использованием 🔹 Скорость замедлилась примерно на 5%. Очевидно, что это совершенно не критично. К тому же от версии к версии логика импорта будет оптимизироваться и ускоряться. В самом начале файла importlib/__init__.py мы видим такой импорт: import _imp # Just the builtin component, NOT the full Python module То есть часть функционала по прежнему написана на Си, но достаточно низкоуровневая. #basic

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #elseif

当前筛选 #elseif清除筛选
мобилки at home

@apphomie · Post #100 · 13.03.2018 г., 09:00

Пока сообщество (точнее, хэйтеры) занято обсуждением метода toggle для Bool, в Swift 4.1 появились две директивы: canImport и targetEnvironment, предложенные Эрикой Садун. Попробовать их можно уже сейчас в Xcode 9.3 beta 4. Первая будет полезна для кроссплатформенных решений и позволяет определить, можно ли импортировать тот или иной модуль. #if canImport(UIKit) // UIKit-based code #elseif canImport(Cocoa) // OSX code #elseif // Workaround/text, whatever #endif Вторая директива с единственно возможным аргументом simulator позволяет выполнить условную компиляцию для симулятора или реального девайса. Теперь не нужно перечислять все любимые нам архитектуры и ОС (arch(i386) || arch(x86_64)) && (!os(macOS)), а достаточно будет этого: // Test for a simulator destination #if targetEnvironment(simulator) print("Simulator") #else print("Device") #endif http://ericasadun.com/2018/03/05/new-to-swift-in-xcode-9-3-beta-4-se-0075-and-se-0190-allow-better-configuration-testing/