Илия обнови решението на 30.03.2013 00:40 (преди над 11 години)
+class Person:
+ def __init__(self, **kwargs):
+ for attribute in kwargs:
+ setattr(self, attribute, kwargs[attribute])
+
+ self.kids = []
+
+ if 'mother' in kwargs:
+ self.mother.kids.append(self)
+
+ if 'father' in kwargs:
+ self.father.kids.append(self)
+
+ def children(self, **kwargs):
+ if kwargs:
+ return [child for child in self.kids
+ if child.gender == kwargs['gender']]
+ else:
+ return [child for child in self.kids]
+
+ def is_direct_successor(self, successor):
+ return successor.mother or successor.father is self
+
+ def get_sisters(self):
+ if self.mother:
+ from_mother = self.mother.children(gender='F')
+ if self.father:
+ from_father = self.father.children(gender='F')
+
+ return [sister for sister in set(from_father+from_mother)]
+
+ def get_brothers(self):
+ if self.mother:
+ from_mother = self.mother.children(gender='M')
+ if self.father:
+ from_father = self.father.children(gender='M')
+
+ return [brother for brother in set(from_father+from_mother)]
Damn, it! Открих малко проблеми, ама ще ги оправя утре : ) Само да питам, имената kwargs проблем ли са? Търсих в PEP8, дали когато имам някакъв клас вместо kwargs е по-подбре да използвам някоя по подходяща дума и не открих нищо по въпроса.