2013-10-10 3 views
2

Я изучаю Python, и я только что сделал пример на youtube, что меня сбивает с толку по ряду причин. Первый из них - это. Я понимаю, что при создании класса все, что в скобках после, должно быть пустым или родительским. Значение создаваемого класса наследует вещи из другого класса. Например:Понимание родительских/дочерних классов в Python

Class Child(Parent): 

В примере, наклеенный ниже, первый создаются здесь класс имеет «объект» в скобках, что я не понимаю, что это такое и что это ссылка, потому что я не вижу в этом где-нибудь еще в коде, и, конечно же, нет класса с именем «Объект».

#http://www.youtube.com/watch?v=OcKeDVOzTwg 

import sys 

YELLOW= '\033[93m' 
RED = '\033[91m' 
NORMAL = '\033[0m' 

Class Person(object): 
    def __init__(self, name, age): 
     self.name=name 
     self.age=age 

    def __str__(self): 
     return %s is %d (self.name, self.age) 

class PersonDecorator(Person) 

    def __init__(self, person): 
     self._person = person 
    def __getattr__(self, name): 
     return getattr(self.__person, name) 
    def __str__(self): 
     age = self._person.age 
     color = NORMAL 
     if age >= 30: 
      color =RED 
     elif age >= 20: 
      color=YELLOW 
     return '%s%s%s' % (color, self._person.__str__(), NORMAL) 

def main(): 
    p = [] 

    p.append(Person('Micheal', 25)) 
    p.append(Person('Bill', 2)) 
    p.append(Person('Ryan', 40)) 
    p.append(Person('Matt', 21)) 

    for person in p: 
     if '-c' in sys.argv 
     person = PersonDecorator(person) 
     print person 

if __name__ = '__main__' 
    main() 
+0

Существует класс с именем 'object', это базовый класс всех классов. (В Python 2 это базовый класс всех классов «нового стиля», но это по существу означает все, потому что это единственные, которые вы хотели бы использовать.) – BrenBarn

+0

В частности, см. Http://docs.python.org/ 2/reference/datamodel.html # new-style-and-classic-classes. –

+0

Прочтите это, [http://stackoverflow.com/questions/4015417/python-class-inherits-object?rq=1] – NullException

ответ

2

Не волнуйтесь, класс object существует. Это встроенный тип и всегда присутствует в python.

Подробнее: Built-in Functions: object()

Смежные вопросы