Условия задачи:

 

Напишите программу, в которой описан класс со следующими свойствами. В классе описан конструктор, которому в качестве аргументов (помимо первой ссылки на создаваемый объект) передаются текст и целое число, причем в произвольном порядке. Число и текст присваива-
ются как значения определенным полям. Если переданы два текстовых значения, то создается только текстовое поле со значением, получающимся объединением значений аргументов. Если аргументами переданы два числовых поля, то у объекта будет только поле с целочисленным
значением, равным сумме значений аргументов. В иных случаях поля для объекта не создаются. Создать на основе класса объекты и проверить функциональность кода.

 

Решение задачи:

class Myclass:
	def __init__(self, value1, value2):
		if type(value1) == int and type(value2) == str:
			self.num = value1
			self.txt = value2
		elif type(value2) == int and type(value1) == str:
			self.num = value2
			self.txt = value1
		elif type(value2) == int and type(value1) == int:
			self.num = value1 + value2
		elif type(value2) == str and type(value1) == str:
			self.txt = value1 + value2
	def show(self):
		lst = ['num', 'txt']
		for _ in lst:
			if _ in dir(self):
				print(f'Значение {_} составит {self.__dict__[_]}')
			else:
				print(f'У объекта нет полей- атрибутов {_}')
a = Myclass(1,3)
a.show()