2013-12-04 4 views
-1

У меня проблемы с моим методом getter для получения номера телефона. Это мой код:Ошибка с использованием метода класса getter - Python

# Personal info class 
class PersonalInfo: 
    def set_names(self, name): 
     self.__names = name 

    def set_addresses(self, add): 
     self.__addresses = add 

    def set_ages(self, age): 
     self.__ages = age 

    def set_numbers(self, number): 
     self.__numbers = number 

    # Accessor methods  
    def get_names(self): 
     return self.__names 

    def get_addresses(self): 
     return self.__addresses 

    def get_ages(self): 
     return self.__ages 

    def get_numbers(self): 
     return self.__numbers 

def main(): 
    # references PersonalInfo object 
    info = PersonalInfo() 

    # stores values in the object 
    info.set_names("Will") 
    info.set_addresses("26 Explorer Blvd, Punta Gorda, FL") 
    info.set_ages("21") 
    info.set_numbers("941-245-0255") 

    # displays values stored in object's fields 
    print "Name:", info.get_names() 
    print "Address:", info.get_addresses() 
    print "Age:", info.get_ages() 
    print "Phone number:", info.get_numbers 
    print 

    # stores new values 
    info.set_names("Pat") 
    info.set_addresses("26 Explorer, Punta Gorda, FL") 
    info.set_ages("28") 
    info.set_numbers("941-245-0266") 

    # displays new values 
    print "Name:", info.get_names() 
    print "Address:", info.get_addresses() 
    print "Age:", info.get_ages() 
    print "Phone number:", info.get_numbers 
    print 

    # stores new values again 
    info.set_names("Motley") 
    info.set_addresses("11 Scotland Ave, Edison, NJ") 
    info.set_ages("49") 
    info.set_numbers("732-709-3409") 

    # displays newest values 
    print "Name:", info.get_names() 
    print "Address:", info.get_addresses() 
    print "Age:", info.get_ages() 
    print "Phone number:", info.get_numbers 

main() 

Когда я запускаю этот код для всех телефонных номеров, он отображает «main.PersonalInfo экземпляр в 0x0297BB70 >>». Это для введения в класс компьютерного программирования, и я честно не понимаю, где я ошибся. Любая помощь будет оценена по достоинству. :)

+2

С одной стороны, [вы используете сеттер и добытчик в Python] (https://archive.org/details/SeanKellyRecoveryfromAddiction). –

+1

Кроме того, начальные двойные подчеркивания плохие. Если вам нужно спросить, нужно ли вам их использовать, вам не нужно их использовать. –

+1

Не используйте геттеры и сеттеры. [Python не является Java] (http://dirtsimple.org/2004/12/python-is-not-java.html). –

ответ

4

Вы забыли на самом деле позвонить по телефону метод. Обратите внимание на скобки:

print "Phone number:", info.get_numbers() 
+0

Такая глупая ошибка. Спасибо! – bij0ux

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