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

Как проверить, является ли переменная класса или нет?

Этот учебник исследует способы проверить, является ли переменную класс. Прямой способ проверить, является ли переменная класса, состоит в том, чтобы использовать службу выполнения ISClass (), от модуля проверки Python. Используйте ISClass () в сочетании с встроенным функцией iSinstance () Python, чтобы проверить переменную. Оба этими возвращаются логически … Как проверить, является ли переменной классом или нет? Подробнее “

Автор оригинала: Girish Rao.

Этот учебник исследует способы проверить, является ли переменную класс.

Прямой способ проверить, является ли переменная класса, это использовать ISClass () Служба выполнения, от Python’s проверять модуль. Использовать ISClass () В сочетании с Python’s Isinstance () Встроенная функция для изучения переменной. Оба они возвращают логию как ответ на тест.

Вы можете посмотреть меня объяснить видео, пока вы прокрутите эту статью:

Примечание : Все приведенные ниже решения были проверены с помощью Python 3.9.0b5

Постановка проблемы

Представьте себе следующий класс в Питон .

class MyFinxterClass1(object):
    pass

Учитывая следующие змеи, как можно сказать, является ли переменную класс?

variable1 = MyFinxterClass1
variable2 = MyFinxterClass1()

Фон

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

Достаточно Dawdling !! Покажите мне!!

Ok! Ok!! Знаете ли вы, что движение, любое движение, является сущностью жизни.   Обдумайте его в глубине своего ума, когда вы прочитаете этот блог. Не забудьте встать и двигаться, растянуть, прогуляться, сделать глубокое дыхание, каждые 10-15 минут, когда вы глубоко погружаетесь в кодирование Python.

Python Стандарт Библиотека содержит . «Осмотреть» Модуль, который предоставляет полезные услуги времени выполнения. Эти услуги предоставляют полезную информацию о живых объектах, таких как модули, классы и т. Д. Inspect.isclass () В частности, помогает определить, является ли переменная класса. Давайте посмотрим, как это сделано …

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59) 
>>> 
>>> ## Declare the class. Note that the 'pass' keyword is used to keep
>>> ## the code simple and easy to understand. It translates to a NOP.
>>> class MyFinxterClass1(object):
...     pass
... 
>>> ## 'inspect' is a Python Standard Library Module that contains a lot of
>>> ## useful Python Runtime Services
>>> import inspect
>>> 
>>> ## First test the Class itself...
>>> inspect.isclass(MyFinxterClass1)
True
>>> ## This is good!! We now know for sure, MyFinxterClass1 is a Class
>>> 
>>> ## Now, instantiate the Class…
>>> ## variable2 is an instance of Class MyFinxterClass1.
>>> variable2 = MyFinxterClass1()
>>> ## But what is variable1? The test for variable1 has a hint.
>>> variable1 = MyFinxterClass1
>>> 
>>> ## Next, test the variables...
>>> inspect.isclass(variable2)
False
>>> ## Still good!! Variable2 is an instance, hence not a class.  
>>>
>>> ## But what about variable1?
>>> inspect.isclass(variable1)
True
>>> ## variable1 is an alias of MyFinxterClass1, hence it is also considered a class.

Примечание: Ключевое слово . «Проход» был использован для сохранения кода просто и легко понять. В Python это представляет собой NOP (Нет операции), то есть действительный код, но не комментарий. В приведенном выше примере ключевое слово «Проход» Помогает сформировать тело класса, сохраняя его простые и голые кости.

Как можно видеть сверху, Inspect.isclass () Является ли лучшим и простым способом проверить, является ли переменная класса или нет. Кроме того, проверять Модуль является частью Python Standard Библиотека Отказ Можно заверить, что он прошел собрание жестко, как гвозди Python Сообщество Отказ Тест работал в самом классе, а также его экземпляра и его псевдоним. Но это работает на Python’s Встроенные классы? Давайте посмотрим…

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59) 
>>> 
>>> ## First lets test the list class.
>>> ## Declare a list variable...
>>> l1 = [1, 2, 3, 4]
>>> ## Make sure it is a list… Yup! It is a list!!
>>> type(l1)

>>>
>>> ## Is 'list' a class? It should be!!!. Yup! It is a class!!
>>> inspect.isclass(list)
True
>>> ## What about the variable? 
>>> inspect.isclass(l1)
False
>>> ## So far, so good.  What about a Set?
>>> s1 = {1, 2, 3, 4}
>>> type(s1)

>>>
>>> inspect.isclass(set)
True
>>> inspect.isclass(s1)
False
>>> 
>>> ## Hmm, we are beginning to see a pattern here! Excellent!!
>>> t1 = (1, 2, 3, 4)
>>> type(t1)

>>> inspect.isclass(tuple)
True
>>> inspect.isclass(t1)
False
>>> 

Так да! Похоже, это Inspect.isclass () Хорошо работает, чтобы проверить, является ли переменная класса.

Вы упомянули ISInstance ()! Что это?

Python это объектно-ориентированный язык. Таким образом, можно создавать абстрактные классы, полученные классы, виртуальные классы и т. Д. Затем он становится важным выяснить, если данная переменная является экземпляром определенного класса.   Это когда isintance () становится полезным.   Метод Isinstance (объект , ClassInfo ) это Python Встроенная функция. Это тесты, если аргумент «объекта» является экземпляром « » ClassInfo «Аргумент. Давайте посмотрим, как это работает.

Попробуйте использовать Isinstance () на Python’s встроенные классы, такие как Списки , наборы и кортежи .

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59) 
>>> 
>>> ## Declare a list, a set and a tuple variable...
>>> l1 = [1, 2, 3, 4]
>>> s1 = {1, 2, 3, 4}
>>> t1 = (1, 2, 3, 4)
>>>
>>> ## Now let's play with the isinstance() built-in Python function.
>>> ## s1 is a 'set', not a 'tuple'
>>> isinstance(s1, tuple)
False
>>> ## But t1 is indeed a 'tuple'
>>> isinstance(t1, tuple)
True
>>> ## Is s1 really a set? Yes, it is...
>>> isinstance(s1, set)
True
>>> ## What if we ask if t1 is a 'set'?
>>> isinstance(t1, set)
False
>>> ## Still works!! Doesn't it?? Now we are beginning to have fun, lol!!!
>>> ## What about l1? Yeah! What about it???  Go ahead and test it...
>>> isinstance(l1, list)
True
>>> isinstance(l1, set)
False
>>> isinstance(l1, tuple)
False 

Читатель должен идти вперед и попробовать это на всех встроенных классах (также известных как типы данных) в Python. У читателя есть шанс стать знаменитым, если они находят ошибку на языке Python !! Да, Python ничто, если не для его великого сообщества пользователей.

Так как насчет Myfinxterclass и его варианты и экземпляры, можно спросить. Будет Isinstance () Работайте над этим? Давайте разберемся…

>>> ## Declare the class. Note that the 'pass' keyword is used to keep
>>> ## the code simple and easy to understand. It translates to a NOP.
>>> class MyFinxterClass1(object):
...     pass
... 
>>> ## 'inspect' is a Python Standard Library that contains a lot of
>>> ## useful Python Runtime Services
>>> import inspect
>>> 
>>> ## Declare a Class derived from MyFinxterClass1
>>> class Second1(MyFinxterClass1):
...     pass
... 
>>> ## Declare another Class derived from MyFinxterClass1
>>> ## Note that Second1 and Second2 are derived sibling classes because
>>> ## both of them are derived from MyFinxterClass1
>>> class Second2(MyFinxterClass1):
...     pass
... 
>>> ## Instantiate the derived Classes
>>> variable3 = Second1()
>>> variable4 = Second2()
>>> 
>>> ## Test whether they are classes. They should be!!!
>>> inspect.isclass(MyFinxterClass1)
True
>>> inspect.isclass(Second1)
True
>>> inspect.isclass(Second2)
True
>>> 
>>> ## So far so good. What about the instances? Do they have the 
>>> ## the relationships we think they should have?  Lets See...
>>> isinstance(variable3, Second1)
True
>>> ## Yes, variable3 is an instance of Second1.
>>> isinstance(variable3, MyFinxterClass1)
True
>>> ## Yes, variable3 is *also* an instance of MyFinxterClass1. This is 
>>> ## because Second1 is derived from MyFinxterClass1. Makes Sense!!
>>> 
>>> ## This is the interesting one!! Second1 and Second2 are siblings.
>>> ## So yes, they are related because MyFinxterClass1 is their parent.
>>> ## But variable3 is *not* an instance of Second2. Therefore....
>>> isinstance(variable3, Second2)
False
>>> ## Phew!! What a relief :)
>>> 
>>> ## In a similar vein, can the reader predict answers to the following?
>>> isinstance(variable4, Second1)
False
>>> isinstance(variable4, MyFinxterClass1)
True
>>> isinstance(variable4, Second2)
True
>>> 

Как тип () связан со всем этим?

Поскольку читатель, возможно, заметил, Python в качестве языка очень интуитивно и легко учиться.   Функция Тип () это встроенная функция Python. С одним аргументом Тип (объект) Возвращает …, вы уже догадались, « Тип «Аргумент объекта. Есть и другие интересные вариации Тип () Функция, но это для другой учебник.

Так что же делает Тип () Расскажите нам о классах, переменных и экземплярах, которые мы создали выше? Давайте посмотрим…

$ python
Python 3.9.0b5 (default, Oct 19 2020, 11:11:59) 
>>>
>>> ## Declare the Classes and Instantiate them as was done before
>>> ## in code snippets shown above.
>>> class MyFinxterClass1(object):
...     pass
... 
>>> variable1 = MyFinxterClass1
>>> variable2 = MyFinxterClass1()
>>> 
>>> class Second1(MyFinxterClass1):
...     pass
... 
>>> class Second2(MyFinxterClass1):
...     pass
...     
>>> variable3 = Second1()
>>> variable4 = Second2()
>>> 
>>> ## Next, run the type() function on each of them.
>>> type(MyFinxterClass1)

>>> type(Second1)

>>> type(Second2)

>>> type(variable1)

>>> ## So, User defined classes and their aliases, show up as the 'type' metaclass
>>>
>>> ## On the other hand, for the instantiations(i.e. variables) type() shows the
>>> ## appropriate class. 
>>> type(variable2)

>>> type(variable3)

>>> type(variable4)

>>> 
>>> ## What about the Python built-in classes. Well, declare a list, a set and a tuple
>>> ## variable...
>>> l1 = [1, 2, 3, 4]
>>> s1 = {1, 2, 3, 4}
>>> t1 = (1, 2, 3, 4)
>>> 
>>> ## As above, run the type() function on each of them. Again, type() shows the
>>> ## appropriate class. 
>>> type(l1)

>>> type(s1)

>>> type(t1)

>>> 
>>> ## What happens when type() is run on Python's built-in classes
>>> ## such as list, set and tuple? 
>>> type(list)

>>> type(set)

>>> type(tuple)

>>> 
>>> ## Again, just as the user defined classes, the Python built-in classes show up
>>> ## as the 'type' metaclass.
>>>

Заключение

Можно использовать Inspect.isclass () Чтобы проверить, является ли переменная класса. Использовать Isinstance () Чтобы проверить «- это отношение объекта со своим родительским классом. Наконец, используйте Тип () найти « Тип «Из предмета.

Люди, которые работают с компьютерами, часто склонны тратить долгие часы неподвижными.   Мы (да мне – тоже) часто забываем даже мигать нашими глазами, потому что кодирование так очень интенсивно. Всегда не забывайте часто делать перерывы. Двигайтесь, возьмите глубокие вдохи и моргайте. Я могу заверить вас, это делает кодировку веселья.

Финктерская академия

Этот блог был доставлен вам Гириша Рао , студент Финктерская академия . Вы можете найти его Профиль намного здесь Отказ

Ссылка

Все исследования для этой статьи в блоге было сделано с использованием Python Documents , Поисковая система Google и общая база знаний Финктерская академия и Переполнение стека Общины.

Оригинал: “https://blog.finxter.com/how-to-check-whether-a-variable-is-a-class-or-not/”