Написать функцию fcounter(), которая первым параметром получает некоторый класс, а остальные параметры применяет для создания экземпляра этого класса. Функция должна возвращать 4 отсортированных списка: имена методов класса, имена полей класса, имена методов, которые появились в экземпляре и имена полей, которые появились в экземпляре (под «полями» имеются в виду не-callable() объекты).

class C:
    x, y, z = 1, 3, 5

    def X(self): return self.x
    def Y(self): return self.y

    def __init__(self, dx, dy, dz):
        self.x = dx
        self.Y = dy
        self.Z = dz

cm, cf, om, of = fcounter(C, 6, 7, 8)
print("Class: methods", *cm)
print("Class: fields", *cf)
print("Object: methods", *om)
print("Object: fields", *of)

Вам понадобятся функции callable() и getattr()

Class: methods X Y
Class: fields x y z
Object: methods
Object: fields Y Z


CategoryHomework

LecturesCMC/PythonIntro2019/Homework_CountFields (последним исправлял пользователь FrBrGeorge 2019-11-18 10:00:13)