Python del on classes

Предположим, у нас есть класс на python:

class A(object):
    def __del__(self):
        print "Del!"

__ del __ вызывается при удалении / сборке мусора любого экземпляра A .

Можно ли сделать то же самое для класса? Я хотел бы, чтобы какой-то метод вызывался, когда сам класс собирает мусор, что, как я предполагаю, выполняется при выходе из скрипта.

Заранее спасибо за любые указатели!


Edit: Как я и ожидал, все пытаются оттолкнуть меня от использования этой техники (я бы, наверное, сам сделал такой комментарий :)), хотя вопрос все еще стоит: возможно ли это?

Я хочу следующее: у меня есть класс со статическим членом, который нужно очистить.

class A(object):
    class Meta(type):
        def __new__(mcs, name, bases, attrs):
            attrs['conn'] = sqlite3.connect( DB_FILE )
            return type.__new__(mcs, name, bases, attrs)

    __metaclass__ = Meta

Я бы хотел A.conn.close () , но незадолго до закрытия программы, то есть когда я знаю, что больше никогда не будет создано экземпляров A . Я знаю, что могу сделать это с помощью atexit , но это кажется очень некрасивым.

6
задан pajton 9 April 2011 в 21:43
поделиться