были некоторые проблемы с крошечным python-скриптом
обновление: см. Новые проблемы, возникшие после того, как я переписал класс ...:
обновление: - наконец-то добрались
#!/usr/bin/env python3
"""
contacts.py
This program uses a Person class to keep track of contacts.
"""
class Person(object):
"""
The Person class defines a person in terms of a
name, phone number, and email address.
"""
# Constructor
def __init__(self, name, phone, email, padress):
self.name = name
self.phone = phone
self.email = email
self.padress = padress
def __str__(self):
return "Person[name={}, phone={}, email={}, padress={}]".format(self.name, self.phone,
self.email, self.padress)
# create instance person = Person(name='John Doe', phone='123454321', email='john.doe@domain.com', adress='1600 Pennsylvania ave., Washington DC')
# access property
# Accesser Methods (getters)
def getName(self):
return self.name
def getPhone(self):
return self.phone
def getEmail(self):
return self.email
def getpadress(self):
return self.padress
# Mutator Methods (setters)
def setPhone(self, newPhoneNumber):
self.phone = newPhoneNumber
def setEmail(self, newEmailAddress):
self.email = newEmailAddress
def setPadress(self, newPadress):
self.padress = newPadress
def __str__(self):
return "Person[name=" + self.name + \
",phone=" + self.phone + \
",email=" + self.email + \
",padress=" + self.padress + \
"]"
def enter_a_friend():
name = input("Enter friend's name: ")
phone = input("Enter phone number: ")
email = input("Enter email address: ")
padress = input("Enter friend's padress:")
return Person(name, phone, email, padress)
def lookup_a_friend(friends):
found = False
name = input("Enter name to lookup: ")
for friend in friends:
if name in friend.getName():
print(friend)
found = True
if not found:
print("No friends match that term")
def show_all_friends(friends):
print("Showing all contacts:")
for friend in friends:
print(friend)
def main():
friends = []
running = True
while running:
print("\nContacts Manager")
print("1) new contact 2) lookup")
print("3) show all 4) end ")
option = input("> ")
if option == "1":
friends.append(enter_a_friend())
elif option == "2":
lookup_a_friend(friends)
elif option == "3":
show_all_friends(friends)
elif option == "4":
running = False
else:
print("Unrecognized input. Please try again.")
print("Program ending.")
if __name__ == "__main__":
main()
исправил код, теперь он работает отлично !!
в следующий раз я попытаюсь добавить соединение с БД в этот код - я попытаюсь сделать это с peewee.
Peewee - это простая и маленькая ORM. Он имеет несколько (но выразительных) концепций, что делает его легким в освоении и интуитивно понятным в использовании.
a small, expressive ORM
python 2.7+ and 3.4+ (developed with 3.6)
supports sqlite, mysql and postgresql
tons of extensions
Peewee автоматически выведет имя таблицы базы данных из имени
класса. Вы можете переопределить имя по умолчанию, указав
Атрибут table_name во внутреннем классе «Meta» (наряду с базой данных
атрибуты). Чтобы узнать больше о том, как Peewee генерирует имена таблиц,
см. раздел «Имена таблиц».
думаю, я попробую