def get_work_phone(self): if 'work' in self.x: return self.x['work'] else: return
def get_sms_text(self): return f'Уважаемый {self.name} {self.otch}! Примите участие в нашем беспроигрышном конкурсе для физических лиц'
class Company: def __init__(self, name, tp, x, *a): self.name = name self.tp = tp self.x = x self.a = a
def get_phone(self): if 'contact' in self.x: return self.x['contact'] elif 'contact' not in self.x: for i in self.a: if not i.get_work_phone(): return else: return i.get_work_phone()
def get_name(self): return self.name
def get_sms_text(self): return f'Для компании {self.name} есть супер предложение! Примите участие ' \ f'в нашем беспроигрышном конкурсе для {self.tp}'
def send_sms(*objects): for e in objects: if e.get_phone(): print(f'Отправлено СМС на номер {e.get_phone()} c текстом: {e.get_sms_text()}') else: print(f'Не удалось отправить сообщение абоненту: {e.get_name()}')
Выводит это: Отправлено СМС на номер 123 c текстом: Уважаемый Ivan Ivanovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц Отправлено СМС на номер 789 c текстом: Уважаемый Ivan Petrovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц Не удалось отправить сообщение абоненту: Sidorov Ivan Petrovich Не удалось отправить сообщение абоненту: Doe John Unknown Отправлено СМС на номер 111 c текстом: Для компании Bell есть супер предложение! Примите участие в нашем беспроигрышном конкурсе для ООО Не удалось отправить сообщение абоненту: Cel
File is too long to be displayed fully
Должно это: Отправлено СМС на номер 123 c текстом: Уважаемый Ivan Ivanovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц Отправлено СМС на номер 789 c текстом: Уважаемый Ivan Petrovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц Не удалось отправить сообщение абоненту: Sidorov Ivan Petrovich Не удалось отправить сообщение абоненту: Doe John Unknown Отправлено СМС на номер 111 c текстом: Для компании Bell есть супер предложение! Примите участие в нашем беспроигрышном конкурсе для ООО Отправлено СМС на номер 789 c текстом: Для компании Cell есть супер предложение
я так понял проблема тут def get_phone(self): if 'contact' in self.x: return self.x['contact'] elif 'contact' not in self.x: for i in self.a: if not i.get_work_phone(): return else: return i.get_work_phone()
мне вот эта ботва непонятна: for i in self.a: if not i.get_work_phone(): return это, типа, если у первого же сотрудника не нашел рабочий телефон, то расплакался и вышел?
def __init__(self, name, otch, surn, x):
self.name = name
self.otch = otch
self.surn = surn
self.x = x
def get_phone(self):
if 'private' in self.x:
return self.x['private']
else:
return
def get_name(self):
return f'{self.surn} {self.name} {self.otch}'
def get_work_phone(self):
if 'work' in self.x:
return self.x['work']
else:
return
def get_sms_text(self):
return f'Уважаемый {self.name} {self.otch}! Примите участие в нашем беспроигрышном конкурсе для физических лиц'
class Company:
def __init__(self, name, tp, x, *a):
self.name = name
self.tp = tp
self.x = x
self.a = a
def get_phone(self):
if 'contact' in self.x:
return self.x['contact']
elif 'contact' not in self.x:
for i in self.a:
if not i.get_work_phone():
return
else:
return i.get_work_phone()
def get_name(self):
return self.name
def get_sms_text(self):
return f'Для компании {self.name} есть супер предложение! Примите участие ' \
f'в нашем беспроигрышном конкурсе для {self.tp}'
def send_sms(*objects):
for e in objects:
if e.get_phone():
print(f'Отправлено СМС на номер {e.get_phone()} c текстом: {e.get_sms_text()}')
else:
print(f'Не удалось отправить сообщение абоненту: {e.get_name()}')
person1 = Person("Ivan", "Ivanovich", "Ivanov", {"private": 123, "work": 456})
person2 = Person("Ivan", "Petrovich", "Petrov", {"private": 789})
person3 = Person("Ivan", "Petrovich", "Sidorov", {"work": 789})
person4 = Person("John", "Unknown", "Doe", {})
company1 = Company("Bell", "ООО", {"contact": 111}, person3, person4)
company2 = Company("Cell", "АО", {"non_contact": 222}, person2, person3)
company3 = Company("Dell", "Ltd", {"non_contact": 333}, person2, person4)
send_sms(person1, person2, person3, person4, company1, company2, company3)
Выводит это:
Отправлено СМС на номер 123 c текстом: Уважаемый Ivan Ivanovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц
Отправлено СМС на номер 789 c текстом: Уважаемый Ivan Petrovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц
Не удалось отправить сообщение абоненту: Sidorov Ivan Petrovich
Не удалось отправить сообщение абоненту: Doe John Unknown
Отправлено СМС на номер 111 c текстом: Для компании Bell есть супер предложение! Примите участие в нашем беспроигрышном конкурсе для ООО
Не удалось отправить сообщение абоненту: Cel
File is too long to be displayed fully
Должно это:
Отправлено СМС на номер 123 c текстом: Уважаемый Ivan Ivanovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц
Отправлено СМС на номер 789 c текстом: Уважаемый Ivan Petrovich! Примите участие в нашем беспроигрышном конкурсе для физических лиц
Не удалось отправить сообщение абоненту: Sidorov Ivan Petrovich
Не удалось отправить сообщение абоненту: Doe John Unknown
Отправлено СМС на номер 111 c текстом: Для компании Bell есть супер предложение! Примите участие в нашем беспроигрышном конкурсе для ООО
Отправлено СМС на номер 789 c текстом: Для компании Cell есть супер предложение
я так понял проблема тут
def get_phone(self):
if 'contact' in self.x:
return self.x['contact']
elif 'contact' not in self.x:
for i in self.a:
if not i.get_work_phone():
return
else:
return i.get_work_phone()