Програмиране с Python » Форуми » Python

Basic knowladges

(4 posts)

  1. fn80017
    Member

    Ето накратко как работи attribute resolving-а: ако се опитаме да достъпим a.attr, атрибутът първо се търси в текущия обект (в a), ако го няма—търси се в неговия клас (в Class), ако и там го няма започва да се търси в родителските класове на Class, и така нататък.

    Как е възможно даден атрибут да присъства в инстанцията, а да не присъства в клас-а. Трябва ли винаги първият аргумент на функция от клас-а, да бъде self.

    Posted 6 years ago #
  2. Всички имена, дефинирани в рамките на твърдението class стават атрибути на класа. Атрибути на инстанцията пък са тези, които са присовени на обект от този клас, най-често self. Ето един пример:

    class Baba:
        """baba и setbaba са атрибути на класа"""
        baba = 5
        def setbaba(self, x): self.baba = x
    
    print Baba.baba # 5
    b = Baba()
    print b.baba # 5
    b.setbaba(42)
    print Baba.baba, b.baba # 5, 42
    b.dyado = lambda x: 42 # dyado не присъства в класа, но присъства в инстанцията
    print b.dyado # <function…
    print Baba.dyado # AttributeError
    
    Posted 6 years ago #
  3. fn80017
    Member

    Трябва ли винаги първият аргумент на функция от клас-а, да бъде self.

    Posted 6 years ago #
  4. Трябва ли винаги първият аргумент на функция от клас-а, да бъде self.

    Posted 6 years ago #

RSS feed for this topic

Reply

You must log in to post.