Класс - это пользовательский тип, состоящий из методов и атрибутов.
Инстанс (Вызов) класса создается путем вызова имени класса как функции с параметрами. Объект состоит из атрибутов и методов.
Атрибут - это переменная, метод - это функция. Отличия метода от функции в том, что у него есть первый параметр - self.
Модель класса:
class имя_класса: инструкция 1 .... инструкция N
Есть также другой тип объекта - инстанс класса, который генерируется при вызове:
инстанс_класса = имя_класса()
Объект класса и инстанс класса - это два разных объекта. Первый генерируется на этапе объявления класса, второй - при вызове имени класса. Объект класса может быть один, инстансов класса может быть сколько угодно.
Инструкция - это, как правило, определение функции. При определении класса создается новое пространство имен и создается объект-класс, который является оболочкой для всех инструкций.
Пример программы с использованием класса:
#!/usr/bin/env python # -*- coding: utf-8 -*- import math self.a1=a self.b1=b print self.a1, self.b1 s1= s2= return 0 if __name__ == '__main__':
А простым человеческим языком написать, что такое self и что оно делает? И желательно приводить результаты действий примеров программ, чтобы было понятнее, что происходит.
ОтветитьУдалитьИ в самом деле написано ужасно.
ОтветитьУдалитьКод s1 = ....
надо следовало бы поместить в функцию main();
Имя функции следует заменить на привычное foo();
Отделять знак равенства пробелами, вместо:
a=1*2*3*3*f (123)
Писать:
a = 1 * 2 * 3 * f(123)
Прочесть про стандарты pep8;
вот тут понятно описано http://younglinux.info/oopython/objects.php
ОтветитьУдалить