Python sınıfları şöyle, yapıcı çalışan bir parçası olarak:Python/Sphinx belge nesnesi özniteliklerini __init__ içinde yalnızca nasıl ilan edebilirim? nesnesi, yalnızca beyan edildiği nitelikleri ile
class Foo(object):
def __init__(self, base):
self.basepath = base
temp = []
for run in os.listdir(self.basepath):
if self.foo(run):
temp.append(run)
self.availableruns = tuple(sorted(temp))
şimdi ya help(Foo)
kullanabilir veya, self.basepath
ve self.availableruns
nitelikleridir Sfenks içinde Foo
belgelemek denerseniz gösterilmemiş. Bu, API'mızın kullanıcıları için bir sorun.
Bunları "dinamik ilan" özelliklerinin bulundu (ve tercihen docstring'd) çözümleyici tarafından, ama hayır şans şimdiye kadar olabilir emin olmak için standart bir yol aramaya çalıştım. Baska öneri? Teşekkürler.
Teşekkürler. Evet, özniteliklerin genel olarak hesaplanabilir olmadığını takdir ediyorum, sadece basit/standart bir şekilde beyan edilenlerden bazılarını almak için bir keşif var mıydı? sınıf nesne denetimi yerine kaynak tarama. Ya da Sphinx/help'in onları “bulması” için bu attrs özelliklerini mülk olarak ilan etmek için kodu değiştirerek. Ama neyse, doktor yeterli olacaktır amaçlarla varlıklarını beyan için Sfenks sözdizimine o işaretçi: alkış! – andybuckley
"Veya bu attrs özelliklerini özellikler olarak bildirmek için kodu değiştirerek"? "declare" bir Python kavramı değildir. Üyelerin otomatik olarak belgelenmesini sağlayacaksanız, özelliklerinizi kullanmak için özellik yöntemi işlevlerini kullanabilirsiniz. Bu, ** daha fazla iş gibi görünüyor, sadece dokümanlar içinde belgelemekten ibaret. –
Ancak, belgelerin kalitesini önemli ölçüde geliştirdiğini düşündüğüm diğer yöntemlerle eşit bir temelde belgelendikleri anlamına gelir.Performansa çarpmazsa veya kodu aşılmaz hale getirmezse, bunun için biraz daha fazla çalışmaya hazırlanıyorum. İlk sorunun amacı buydu: Eminim bunu yapmanın bir yolunu bulabilirim, ama downsides'i en aza indiren (fiili) bir standart yaklaşım olup olmadığını merak ediyordum. – andybuckley