Классы и объекты Python
Класс - это определяемый пользователем план или прототип, из которого создаются объекты. Классы предоставляют средства объединения данных и функциональности вместе. Создание нового класса создает новый тип объекта, позволяя создавать новые экземпляры этого типа. К каждому экземпляру класса могут быть прикреплены атрибуты для поддержания его состояния. Экземпляры классов также могут иметь методы (определяемые их классом) для изменения их состояния.
Чтобы понять необходимость создания класса, давайте рассмотрим пример, допустим, вы хотите отслеживать количество собак, которые могут иметь разные атрибуты, такие как порода, возраст. Если используется список, первым элементом может быть порода собаки, а вторым элементом - ее возраст. Предположим, есть 100 разных собак, тогда как вы узнаете, какой элемент должен быть каким? Что, если бы вы захотели добавить этим собакам другие свойства? Здесь не хватает организации, и это как раз то, что нужно для занятий.
Класс создает определяемую пользователем структуру данных, которая содержит свои собственные элементы данных и функции-члены, к которым можно получить доступ и использовать, создав экземпляр этого класса. Класс подобен проекту объекта.
Некоторые моменты в классе Python:
- Классы создаются по ключевому слову class.
- Атрибуты - это переменные, принадлежащие классу.
- Атрибуты всегда являются общедоступными, и к ним можно получить доступ с помощью оператора точка (.). Например: Myclass.Myattribute
Синтаксис определения класса: class ClassName: # Заявление-1 . . . # Заявление-N
Определение класса -
В приведенном выше примере ключевое слово class указывает, что вы создаете класс, за которым следует имя класса (в данном случае Dog).
Объекты класса
Объект - это экземпляр класса. Класс похож на проект, а экземпляр - это копия класса с фактическими значениями . Это уже не идея, это настоящая собака, как собака породы мопс, которой исполнилось семь лет. У вас может быть много собак, чтобы создавать множество разных экземпляров, но без класса в качестве проводника вы потерялись бы, не зная, какая информация требуется.
Объект состоит из:
- Состояние: оно представлено атрибутами объекта. Он также отражает свойства объекта.
- Поведение: представлено методами объекта. Он также отражает реакцию объекта на другие объекты.
- Идентичность: дает уникальное имя объекту и позволяет одному объекту взаимодействовать с другими объектами.
Объявление объектов (также называется созданием экземпляра класса)
Когда создается объект класса, считается, что этот класс создан. Все экземпляры разделяют атрибуты и поведение класса. Но значения этих атрибутов, т.е. состояние, уникальны для каждого объекта. У одного класса может быть любое количество экземпляров.
Пример:
Declaring an object –
Python3
# Python3 program to # demonstrate instantiating # a class class Dog: # A simple class # attribute attr1 = "mammal" attr2 = "dog" # A sample method def fun( self ): print ( "I"m a" , self .attr1) print ( "I"m a" , self .attr2) # Driver code # Object instantiation Rodger = Dog() # Accessing class attributes # and method through objects print (Rodger.attr1) Rodger.fun() |
Выход:
mammal I"m a mammal I"m a dog
В приведенном выше примере создается объект, который представляет собой собаку по имени Роджер. У этого класса есть только два атрибута класса, которые говорят нам, что Роджер - это собака и млекопитающее.
Я
- Методы класса должны иметь дополнительный первый параметр в определении метода. Мы не указываем значение для этого параметра при вызове метода, Python предоставляет его.
- Если у нас есть метод, который не принимает аргументов, то у нас все равно должен быть один аргумент.
- Это похоже на этот указатель в C ++ и эту ссылку в Java.
Когда мы вызываем метод этого объекта как myobject.method (arg1, arg2), он автоматически преобразуется Python в MyClass.method (myobject, arg1, arg2) - это все, о чем идет речь в специальном self.
__init__ метод
The __init__ method is similar to constructors in C++ and Java. Constructors are used to initializing the object’s state. Like methods, a constructor also contains a collection of statements(i.e. instructions) that are executed at the time of Object creation. It is run as soon as an object of a class is instantiated. The method is useful to do any initialization you want to do with your object.
Python3
# A Sample class with init method class Person: # init method or constructor def __init__( self , name): self .name = name # Sample Method def say_hi( self ): print ( "Hello, my name is" , self .name) p = Person( "Nikhil" ) p.say_hi() |
Выход:
Привет меня зовут никхил
Переменные класса и экземпляра
Переменные экземпляра предназначены для данных, уникальных для каждого экземпляра, а переменные класса - для атрибутов и методов, общих для всех экземпляров класса. Переменные экземпляра - это переменные, значение которых присваивается внутри конструктора или метода с помощью self, тогда как переменные класса - это переменные, значение которых присваивается в классе.
Defining instance variable using a constructor.
Python3
# Python3 program to show that the variables with a value # assigned in the class declaration, are class variables and # variables inside methods and constructors are instance # variables. # Class for Dog class Dog: # Class Variable animal = "dog" # The init method or constructor def __init__( self , breed, color): # Instance Variable self .breed = breed self .color = color # Objects of Dog class Rodger = Dog( "Pug" , "brown" ) Buzo = Dog( "Bulldog" , "black" ) print ( "Rodger details:" ) print ( "Rodger is a" , Rodger.animal) print ( "Breed: " , Rodger.breed) print ( "Color: " , Rodger.color) print ( "
Buzo details:" ) print ( "Buzo is a" , Buzo.animal) print ( "Breed: " , Buzo.breed) print ( "Color: " , Buzo.color) # Class variables can be accessed using class # name also print ( "
Accessing class variable using class name" ) print (Dog.animal) |
Выход:
Детали Роджера: Роджер - собака Порода: Мопс Коричневый цвет Подробности Buzo: Бузо - собака Порода: Бульдог Черный цвет Доступ к переменной класса с использованием имени класса собака
Defining instance variable using the normal method.
Python3
# Python3 program to show that we can create # instance variables inside methods # Class for Dog class Dog: # Class Variable animal = "dog" # The init method or constructor def __init__( self , breed): # Instance Variable self .breed = breed # Adds an instance variable def setColor( self , color): self .color = color # Retrieves instance variable def getColor( self ): return self .color # Driver Code Rodger = Dog( "pug" ) Rodger.setColor( "brown" ) print (Rodger.getColor()) |
Выход:
коричневый
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.