среда, 16 марта 2011 г.

Python Классы # 14

Класс - это пользовательский тип, состоящий из методов и атрибутов.

Инстанс (Вызов) класса создается путем вызова имени класса как функции с параметрами. Объект состоит из атрибутов и методов. 

Атрибут - это переменная, метод - это функция. Отличия метода от функции в том, что у него есть первый параметр - self.

Модель класса:

class имя_класса:
    инструкция 1
    ....
    инструкция N



Есть также другой тип объекта - инстанс класса, который генерируется при вызове:

инстанс_класса = имя_класса()
Объект класса и инстанс класса - это два разных объекта. Первый генерируется на этапе объявления класса, второй - при вызове имени класса. Объект класса может быть один, инстансов класса может быть сколько угодно.

Инструкция - это, как правило, определение функции. При определении класса создается новое пространство имен и создается объект-класс, который является оболочкой для всех инструкций.

Пример программы с использованием класса:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import math
class Student():
    def f (self, a, b) :
        self.a1=a
        self.b1=b
        print self.a1, self.b1

s1=Student()
s2=Student()
s1.f (6, 5)
s2.f (7, 6)
def main(): 

    return 0 

if __name__ == '__main__':
    main()

3 комментария:

  1. А простым человеческим языком написать, что такое self и что оно делает? И желательно приводить результаты действий примеров программ, чтобы было понятнее, что происходит.

    ОтветитьУдалить
  2. И в самом деле написано ужасно.
    Код s1 = ....
    надо следовало бы поместить в функцию main();
    Имя функции следует заменить на привычное foo();
    Отделять знак равенства пробелами, вместо:
    a=1*2*3*3*f (123)
    Писать:
    a = 1 * 2 * 3 * f(123)

    Прочесть про стандарты pep8;

    ОтветитьУдалить
  3. вот тут понятно описано http://younglinux.info/oopython/objects.php

    ОтветитьУдалить