Рубрики
Без рубрики

Python: Удивительные особенности

Здравствуйте, здесь мы должны обсудить некоторые удивительные особенности Python, которые делают Python Magical …. Теги с Python, программированием, удивительным, функциями.

Наука Python и Data (9 Часть серии)

Здравствуйте, здесь мы должны обсудить некоторые удивительные черты Python, которые делают Python Magical.

1. Получение кода объекта Python

В Python мы можем получить внутреннюю реализацию объекта Python с помощью проверять модуль. Он используется для внутрисрочных объектов в программе и посмотреть исходный код модулей, классов и функций, которые используются по всей программе. Это мощно, потому что этот модуль действительно может быть использован для извлечения исходного кода самого функции, анализируя аргументы, которые функционируют, а также соответствующая библиотечная документация.

Например:

Исходный код:

Для получения кода полного модуля:

Выход

Для получения кода класса или метода:

Выход

2. Функция EXEC () в Python

EXEC () Функция используется для динамического выполнения программы Python, которая может быть либо строкой, либо объектом. Если это строка, строка анализируется как набор записей Python, которые затем выполняются, если не произойдет ошибка синтаксиса, а если это объектный код, он просто выполняется. Мы должны быть осторожны, что возвратные операторы не могут быть использованы вне определений функций, даже в контексте кода, переданного на EXEC () функция. Это не возвращает никакого значения, поэтому возвращает Нет Отказ

Синтаксис EXEC ():

exec(object[, globals[, locals]])

Параметры:

  • Объект: – Это может быть строка или объектный код
  • Глобалы: – Это может быть словарь, и параметр не является обязательным
  • Местные жители: – Это может быть объект отображения и также является необязательным

EXEC () Функция принимает большие блоки кода, в отличие от Eval () функция, которая принимает только одно выражение

Пример:

x = 'name = "John"\nprint(name)'
exec(x)

Выход:

John

3 .__ Способ Call__ в Python

Python имеет набор встроенных методов и __call__ один из них. __call__ Способ позволяет программистам Python написать классы, где инстанции ведут себя как функции и могут быть названы как функция. Это означает, что мы можем вызвать объект класса как функцию. Это удивительное преимущество Python и чувствует себя как волшебство. Существует слишком много путаницы в функции, классе и экземплярах, поэтому см. Пример.

Пример:

Выход:

Instance Created
200

4. Метакласс

Метакласс в Python – это класс класса, который определяет, как класс ведет себя. Класс сам по себе является экземпляром метакласса. Класс в Python определяет, как будет вести себя экземпляр класса. Чтобы хорошо понять метаклассы, нужно иметь предыдущий опыт работы с классами Python. Прежде чем мы погрузимся глубже в метаклассы, давайте получим несколько концепций с дороги.

Создание пользовательских метакласс

В Python мы можем настроить процесс создания класса, передавая ключевое слово Metaclass в определении класса. Это также может быть сделано, наследуя класс, который уже прошел в этом ключевое слово.

class MyMeta(type):
    pass

class MyClass(metaclass=MyMeta):
    pass

class MySubclass(MyClass):
    pass

Ниже мы видим, что тип класса MyMeta является типом, а тип MyClass и MySubClass – Mymeta.

Код:

print(type(MyMeta))
print(type(MyClass))
print(type(MySubclass))

Выход:




«Метаклассы более глубокие магии, чем 99% пользователей, о которых нужно беспокоиться. Если вам интересно, нужны ли вы их, вы не (люди, которые на самом деле нужны, они знают с уверенностью, что они нуждаются в них, и не нуждаются в объяснении, почему) ».

5. Dataclass.

Одна новая и захватывающая функция, приходящая в Python 3.7, является классом данных. Класс данных – это класс, обычно содержащий в основном данные, хотя не на самом деле никаких ограничений. Он создан с использованием нового декоратора @dataclass, следующим образом:

from dataclasses import dataclass

@dataclass
class DataClassCard:
    rank: str
    suit: str

Класс данных поставляется с базовой функциональностью уже реализован. Например, вы можете создать экземпляр, печать и сравнить экземпляры классов данных прямо из коробки:

>>> queen_of_hearts = DataClassCard('Q', 'Hearts')
>>> queen_of_hearts.rank

Выход:

‘Q’

Спасибо за прочтение

Наука Python и Data (9 Часть серии)

Оригинал: “https://dev.to/cdaman123/python-amazing-features-48b7”