Python'da yazdığım birçok sınıfın, aslında str()
'u aradığımda görmek istediğim küçük bir değişken kümesi içerdiğini ve her biri için __str__(self)
'u yeniden yazmanın oldukça hantal olduğunu buldum. Böylece ben, Ancak şu mixin,__str__and için Python Mixin Metodu Çözünürlük Sırası
class StrMixin(object):
'''
Automatically generate __str__ and __repr__
'''
def __str__(self):
import types
name = self.__class__.__name__ + ': '
attrs = [ '{}={}'.format(k,v) for (k,v) in self.__dict__.items() ]
return name + ', '.join(attrs)
def __repr__(self):
return str(self)
kadar pişirilir Ben bir sınıf yazarsanız,
class C(object, StrMixin):
pass
Ben
object
dahil
TypeError: Error when calling the metaclass bases
Cannot create a consistent method resolution
order (MRO) for bases object, StrMixin
Verilen, örnekleme üzerinde aşağıdaki hatayı alıyorum burada gereksiz, ama gerçekten burada neler oluyor?
sadece bu geçici bir çözüm istiyorsanız, bir dekoratör yerine yapmayı düşünün bir karışım. –