Ваш вопрос действительно довольно широкий, так как классы и экземпляры / объекты являются жизненно важными частями объектно-ориентированного программирования, так что это не совсем специфично для Python. Я рекомендую вам купить несколько книг по этому вопросу, поскольку, хотя изначально они и являются базовыми, они могут быть довольно глубокими. По сути , однако:
Наиболее популярной и развитой моделью ООП является модель на основе классов, а не модель на основе объектов. В этой модели объекты - это объекты, которые объединяют состояние (то есть данные), поведение (то есть процедуры или методы) и идентичность (уникальное существование среди всех других объектов). Структура и поведение объекта определяются классом, который является определением или планом всех объектов определенного типа. Объект должен быть явно создан на основе класса, и созданный таким образом объект считается экземпляром этого класса. Объект похож на структуру с добавлением указателей на методы, контроля доступа к элементу и неявного члена данных, который находит экземпляры класса (то есть фактические объекты этого класса) в иерархии классов (важно для функций наследования во время выполнения).
Таким образом, вы, например, определите класс Dog
и создадите экземпляры конкретных собак:
>>> class Dog():
... def __init__(self, name, breed):
... self.name = name
... self.breed = breed
... def talk(self):
... print "Hi, my name is " + self.name + ", I am a " + self.breed
...
>>> skip = Dog('Skip','Bulldog')
>>> spot = Dog('Spot','Dalmatian')
>>> spot.talk()
Hi, my name is Spot, I am a Dalmatian
>>> skip.talk()
Hi, my name is Skip, I am a Bulldog
Хотя этот пример глуп, вы можете начать видеть, как вы можете определить класс Client
, который задает план того, чем является Клиент, имеет методы для выполнения действий над конкретным клиентом, а затем манипулирует конкретным экземпляр клиента путем создания объекта и вызова этих методов в этом контексте.
Иногда, однако, у вас есть методы класса, которые на самом деле не имеют смысла для доступа через экземпляр класса, а больше из самого класса. Они известны как статические методы .