Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Классы и объекты
Объекты представляют собой инкапсуляцию переменных и функций в одной сущности. Объекты получают свои переменные и функции от классов. Классы по сути являются шаблоном для создания ваших объектов.
Очень простой класс выглядел бы примерно так:
class MyClass:
variable = "blah"
def function(self):
print("This is a message inside the class.")
Позже мы объясним, почему вы должны включать "self" в качестве параметра. Сначала, чтобы присвоить вышеуказанный класс(шаблон) объекту, вам нужно сделать следующее:
class MyClass:
variable = "blah"
def function(self):
print("This is a message inside the class.")
myobjectx = MyClass()
Теперь переменная "myobjectx" содержит объект класса "MyClass", который содержит переменную и функцию, определенные в классе с именем "MyClass".
Доступ к переменным объекта
Чтобы получить доступ к переменной внутри вновь созданного объекта "myobjectx", вам нужно сделать следующее:
class MyClass:
variable = "blah"
def function(self):
print("This is a message inside the class.")
myobjectx = MyClass()
myobjectx.variable
Итак, например, ниже будет выведена строка "blah":
class MyClass:
variable = "blah"
def function(self):
print("This is a message inside the class.")
myobjectx = MyClass()
print(myobjectx.variable)
Вы можете создать несколько разных объектов одного и того же класса (которые имеют те же переменные и функции, определенные в нем). Однако каждый объект содержит независимые копии переменных, определенных в классе. Например, если мы хотим определить другой объект с классом "MyClass" и затем изменить строку в переменной выше:
class MyClass:
variable = "blah"
def function(self):
print("This is a message inside the class.")
myobjectx = MyClass()
myobjecty = MyClass()
myobjecty.variable = "yackity"
# Далее выведем оба значения
print(myobjectx.variable)
print(myobjecty.variable)
Доступ к функциям объекта
Чтобы получить доступ к функции внутри объекта, используется нотация, аналогичная доступу к переменной:
class MyClass:
variable = "blah"
def function(self):
print("This is a message inside the class.")
myobjectx = MyClass()
myobjectx.function()
Выше будет выведено сообщение: "This is a message inside the class."
init()
Функция __init__()
, является специальной функцией, которая вызывается при инициализации класса.
Она используется для назначения значений в классе.
class NumberHolder:
def __init__(self, number):
self.number = number
def returnNumber(self):
return self.number
var = NumberHolder(7)
print(var.returnNumber()) #Выводит '7'
Упражнение
У нас есть класс, определенный для транспортных средств. Создайте два новых транспортных средства с именами car1 и car2. Задайте car1 как красный кабриолет стоимостью $60,000.00 с именем Fer, а car2 как синий фургон с именем Jump стоимостью $10,000.00.
# define the Vehicle class
class Vehicle:
name = ""
kind = "car"
color = ""
value = 100.00
def description(self):
desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value)
return desc_str
# your code goes here
# test code
print(car1.description())
print(car2.description())
# define the Vehicle class
class Vehicle:
name = ""
kind = "car"
color = ""
value = 100.00
def description(self):
desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value)
return desc_str
# your code goes here
car1 = Vehicle()
car1.name = "Fer"
car1.color = "red"
car1.kind = "convertible"
car1.value = 60000.00
car2 = Vehicle()
car2.name = "Jump"
car2.color = "blue"
car2.kind = "van"
car2.value = 10000.00
# test code
print(car1.description())
print(car2.description())
#test_output_contains('Fer is a red convertible worth $60000.00.')
#test_output_contains('Jump is a blue van worth $10000.00.')
success_msg("Great job!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!