Обмен технологиями

Наиболее подходящее руководство по объектно-ориентированному программированию для начинающих в Интернете: 14 реализаций классов и объектов на Python. Можете ли вы отличить статические методы от методов класса?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Наиболее подходящее руководство по объектно-ориентированному программированию для начинающих в Интернете: 14 реализаций классов и объектов на Python. Можете ли вы отличить статические методы от методов класса?

Краткое содержание:

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

Оригинальная ссылка:

Блог FreakStudio

Ранее рекомендовалось:

Возможно, наиболее подходящее руководство по объектно-ориентированному программированию для начала работы в Интернете: Реализация Python — обязательно к прочтению энтузиастам встраиваемых систем!

Самый подходящий учебник по объектно-ориентированному программированию для начала работы во всем Интернете: 00 Введение в объектно-ориентированные методы проектирования.

Самый подходящий учебник по объектно-ориентированному программированию в Интернете для начала работы: 01 Основные понятия объектно-ориентированного программирования.

Самый подходящий учебник по объектно-ориентированному программированию в Интернете для начала работы: 02 Реализация классов и объектов на Python — использование Python для создания классов

Самый подходящий учебник по объектно-ориентированному программированию для начала работы в Интернете: 03 Реализация классов и объектов на Python — добавление атрибутов в пользовательские классы

Самый подходящий учебник по объектно-ориентированному программированию для начала работы в Интернете: 04 Реализация классов и объектов на Python — добавление методов в пользовательские классы

Самый подходящий учебник по объектно-ориентированному программированию для начинающих в Интернете: 05 Реализация классов и объектов на Python — теги кода PyCharm

Самый подходящий учебник по объектно-ориентированному программированию для начинающих в Интернете: 06 Реализация классов и объектов на Python — инкапсуляция данных пользовательских классов

Самый подходящий учебник по объектно-ориентированному программированию для начинающих в Интернете: 07 Реализация классов и объектов на Python — аннотации типов

Самый подходящий учебник по объектно-ориентированному программированию для новичков в Интернете: 08 Реализация классов и объектов на Python — декоратор @property

Самый подходящий учебник по объектно-ориентированному программированию для начинающих в Интернете: 09 Реализация классов и объектов на Python — взаимосвязь между классами

Самый подходящий учебник объектно-ориентированного программирования для новичков в Интернете: 10 реализаций классов и объектов на Python — наследование классов и принцип подстановки Лискова

Самый подходящий учебник по объектно-ориентированному программированию для новичков в Интернете: реализация 11 классов и объектов на Python — подкласс вызывает метод родительского класса

Наиболее подходящее руководство по объектно-ориентированному программированию для начинающих в Интернете: реализация 12 классов и объектов на Python. Python использует модуль журналирования для вывода журналов работы программы.

Самый подходящий учебник объектно-ориентированного программирования для новичков в Интернете: Реализация 13 классов и объектов на Python - Установка и использование артефакта визуального чтения кода Sourcetrail

Еще интересный контент для просмотра:

Краткий анализ системы отладки CM3

Спустя полмесяца работы выпущен краткий обзор стека встроенных технологий.

Секреты победителей соревнований: 05. Как разделить работу и содержание учебы сборной страны по электронно-компьютерным соревнованиям

Секреты боевых искусств, позволяющих побеждать на соревнованиях: 04 Краткое и обязательное к прочтению руководство по встроенной разработке в электронных соревнованиях

Секреты боевых искусств, которые помогут выиграть соревнования: 03 Хороший творческий выбор – самая необходимая предпосылка для завоевания национальной премии

Секреты боевых искусств, выигравших соревнования: 02 секрета национальных наград — быстрый процесс подготовки к компьютерным соревнованиям студентов колледжей, обязательная к прочтению новичкам

Секреты боевых искусств для победы на соревнованиях: 01 Как вы относитесь к феномену «перекатки», «исконных событий» и «поиска связей» на современных студенческих соревнованиях?

Секреты боевых искусств, побеждающих в соревнованиях: 00 Предметное соревнование – тема, которую не могут обойти студенты инженерных вузов. Много ли вы знаете?

«Секреты боевых искусств» электронных и компьютерных соревнований - Конкурс электроники Конкурс дизайна оптоэлектроники Конкурс компьютерного дизайна Конкурс дизайна встраиваемых микросхем и систем, все, что вам нужно, здесь!

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

Вы можете перейти по следующей ссылке, чтобы скачать документ:

https://github.com/leezisheng/Doc

изображение

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

Соответствующие ссылки на примеры кода следующие:https://github.com/leezisheng/Python-OOP-Demo

текст

статический метод

Если взять в качестве примера класс SensorClass, то так называемые методы InitSensor, StartSensor, StopSensor и т. д., определенные в классе,Методы объекта, то есть все эти методы представляют собой сообщения, отправленные объекту, и все они вызывают свойства объекта.Фактически, методы, которые мы пишем в классе, не обязательно должны быть методами объекта. В классе есть некоторые методы, которым не нужно вызывать атрибуты объекта. Например, в методе InitSensor нам может потребоваться определить, является ли текущий объект. COM-порт существует. Очевидно, что этот метод отличается от объектов Sensor, которые не имеют значения.

В качестве другого примера мы определяем класс «Треугольник», создаем треугольник, передавая длины трех сторон, и предоставляем методы для расчета периметра и площади. Однако три переданные длины сторон могут оказаться невозможными для создания объекта треугольника, поэтому. мы можем сначала написать метод для проверки того, могут ли три стороны образовать треугольник. Этот метод, очевидно, не является объектным методом, поскольку объект треугольника не был создан при вызове этого метода (поскольку неизвестно, могут ли три стороны образовать треугольник). образуют треугольник), поэтому этот метод является классом Triangle, а не объектом треугольника.мы можем использоватьстатический методДля решения такого рода проблем используется следующий код.

@staticmethod
    _# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
    def IsTrueID(id:int = 0):
        if id >= 0 and id <= 99:
            return True
        else:
            return False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Статические методы на самом деле являются функциями, которые мы изучили. Единственная разница между ними и функциями заключается в том, что статические методы определяются в пространстве класса (пространстве имен класса), а функции определяются в пространстве, где находится программа (глобальное пространство имен). . Статические методы не имеют специальных параметров, таких как self и cls, поэтому интерпретатор Python не будет выполнять привязку классов или объектов для содержащихся в нем параметров. Из-за этого никакие атрибуты и методы класса не могут быть вызваны в статических методах класса. Здесь мы определяем статический метод IsPort, чтобы определить правильность идентификационного номера датчика. Статический метод необходимо изменить с помощью @staticmethod. Чтобы вызвать статический метод, вы можете использовать либо имя класса, либо объект класса, например:

_    # 设置ID号_
    id = 1
_    # 判断ID号是否符合格式_
    if SensorClass.IsTrueID(id):
        s = SensorClass()
    else:
        print("Sensor Init False")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

изображение

метод класса

Подобно статическим методам, Python также может определять методы класса. Первый параметр метода класса условно называется cls и представляет собой объект информации, относящийся к текущему классу (сам класс также является объектом, и в некоторых случаях). места Называется объектом метаданных класса), через этот параметр мы можем получать информацию, относящуюся к классу, и создавать объекты класса. Python автоматически привязывает сам класс к параметру cls (обратите внимание, что он не привязан к объекту класса). ) . Другими словами, когда мы вызываем метод класса, нам не нужно явно передавать параметры для параметра cls.

Методы класса необходимо изменить с помощью модификатора @classmethod. Мы определяем метод класса MasterInfo в MasterClass. Пример кода выглядит следующим образом:

@classmethod
    def MasterInfo(cls):
        print("Info : "+str(cls))

print(MasterClass.MasterInfo())
  • 1
  • 2
  • 3
  • 4
  • 5

изображение

Вставьте сюда описание изображения