Что положить в строку документации модуля Python? [закрыто]

Как я это делаю, создавая класс контейнера.

from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor

class QOTD(Protocol):

    def connectionMade(self):
        self.factory.message_siblings("Got a client")
        self.transport.loseConnection()

class MyFactory(Factory):
    protocol = QOTD
    def __init__(self,root,name):
        self.clients = []
        self.root = root
        self.name = name
        #self.root.add_child(name,self)
    def message_siblings(self,message):
        self.root.message_children(self.name,message)
    def message_sibling(self,message):
        self.root.message_child(self.name,message)  
    def get_message(self,name,message):
        #do something here
        print name,message



class Container(object):
    def __init__(self):
        self.servers = {}
    def add_child(self,obj,name):
        self.servers[name] = obj(self,name)
    def message_children(self,name,message):
        for server in self.servers:
            if server != name:
                self.servers[server].get_message(name,message)
    def message_child(self,name,message):
        if name in self.servers.keys():
            self.servers[server].get_message(name,message)

container = Container()
container.add_child(MyFactory,'test')
container.add_child(MyFactory,'test2')
reactor.listenTCP(8007, container.servers['test'])
reactor.listenTCP(8008, container.servers['test2'])
reactor.run()

Это может быть не лучший метод, но он работает и позволяет использовать некоторую гибкость

147
задан 31 March 2010 в 23:04
поделиться

1 ответ

Подумайте о ком-то, кто делает help (yourmodule) по подсказке интерактивного интерпретатора - что они хотят, чтобы знали? (Другие методы извлечения и отображения информации примерно эквивалентны help с точки зрения количества информации). Итак, если у вас есть в x.py :

"""This module does blah blah."""

class Blah(object):
  """This class does blah blah."""

, то:

>>> import x; help(x)

показывает:

Help on module x:

NAME
    x - This module does blah blah.

FILE
    /tmp/x.py

CLASSES
    __builtin__.object
        Blah

    class Blah(__builtin__.object)
     |  This class does blah blah.
     |  
     |  Data and other attributes defined here:
     |  
     |  __dict__ = <dictproxy object>
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__ = <attribute '__weakref__' of 'Blah' objects>
     |      list of weak references to the object (if defined)

Как вы видите, подробная информация о классах (и функциях тоже, хотя я не показываю одну здесь) уже включен из строк документации этих компонентов; собственная строка документации модуля должна описывать их очень кратко (если вообще) и концентрироваться на кратком изложении того, что модуль в целом может сделать для вас, в идеале с некоторыми документированными примерами (точно так же, как функции и классы, в идеале должны иметь документированные примеры в их строки документации).

Я не понимаю, как метаданные, такие как имя автора и авторские права / лицензия, помогают пользователю модуля - их лучше оставить в комментариях, так как они могут помочь кому-то при рассмотрении вопроса о том, следует ли повторно использовать или модифицировать модуль.

175
ответ дан 23 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: