Python (мфа: [ˈpʌɪθ(ə)n]; в русском языке встречаются названия пито́н[23] или па́йтон


Возможности[править | править код]



Download 1,16 Mb.
bet8/38
Sana29.06.2022
Hajmi1,16 Mb.
#718246
1   ...   4   5   6   7   8   9   10   11   ...   38
Bog'liq
Python

Возможности[править | править код]

Модули и пакеты[править | править код]


Программное обеспечение (приложение или библиотека) на Python оформляется в виде модулей, которые в свою очередь могут быть собраны в пакеты. Модули могут располагаться как в каталогах, так и в ZIP-архивах. Модули могут быть двух типов по своему происхождению: модули, написанные на «чистом» Python, и модули расширения (extension modules), написанные на других языках программирования. Например, в стандартной библиотеке есть «чистый» модуль pickle и его аналог на Си: cPickle. Модуль оформляется в виде отдельного файла, а пакет — в виде отдельного каталога. Подключение модуля к программе осуществляется оператором import. После импорта модуль представлен отдельным объектом, дающим доступ к пространству имён модуля. В ходе выполнения программы модуль можно перезагрузить функцией reload().

Интроспекция[править | править код]


Python поддерживает полную интроспекцию времени исполнения[97]. Это означает, что для любого объекта можно получить всю информацию о его внутренней структуре.
Применение интроспекции является важной частью того, что называют pythonic style, и широко применяется в библиотеках и фреймворках Python, таких как PyRO, PLY, Cherry, Django и др., значительно экономя время использующего их программиста.
Необходимые для интроспекции данные хранятся в специальных атрибутах. Так, например, получить все пользовательские атрибуты большинства объектов можно из специального атрибута — словаря (или другого объекта, предоставляющего интерфейс dict__dict__
>>> class x(object):pass
....
>>> f = x()
>>> f.attr = 12
>>> print(f.__dict__)
{'attr': 12}
>>> print(x.__dict__) # т.к. классы тоже являются экземплярами объекта type
# то и они поддерживают этот тип интроспекции
{'__dict__': , '__module__'.......
Есть также другие атрибуты, имена и назначение которых зависят от объекта:
>>> def f():pass
....
>>> f.func_code.co_code # получение байтокода функции
'd\x00\x00S'
>>> f.__class__ # специальный атрибут - ссылка на класс данного объекта

Подавляющее большинство атрибутов, поддерживающих интроспекцию, является классовым, и их, в свою очередь, можно получить из obj.__class__.__dict__. Часть информации, унаследованную от базового класса, все объекты используют совместно, что позволяет экономить память.
Для удобства получения интроспективной информации в Python есть модуль inspect[98].
>>> def f(x,y = 10,**mp):pass
...
>>> inspect.getargspec(f)
(['x', 'y'], None, 'mp', (10,))
С помощью модуля new возможен обратный процесс — построения объекта из составных частей на этапе исполнения
>>> def f(i): return j + i
....
>>> j = 2
>>> f(1)
3
>>> import new
>>> g = new.function(f.func_code, {'j': 23})
>>> g(1)
24

Download 1,16 Mb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   38




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish