Clarify example; add imports

This commit is contained in:
Andrew M. Kuchling 2008-09-02 13:06:00 +00:00
parent 31a0a1478b
commit 8315da4c17
1 changed files with 10 additions and 4 deletions

View File

@ -1224,7 +1224,7 @@ do it where it's absolutely necessary.
You can write your own ABCs by using ``abc.ABCMeta`` as the
metaclass in a class definition::
from abc import ABCMeta
from abc import ABCMeta, abstractmethod
class Drawable():
__metaclass__ = ABCMeta
@ -1256,15 +1256,21 @@ exception for classes that don't define the method.
Note that the exception is only raised when you actually
try to create an instance of a subclass lacking the method::
>>> s=Square()
>>> class Circle(Drawable):
... pass
...
>>> c=Circle()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class Square with abstract methods draw
TypeError: Can't instantiate abstract class Circle with abstract methods draw
>>>
Abstract data attributes can be declared using the
``@abstractproperty`` decorator::
from abc import abstractproperty
...
@abstractproperty
def readonly(self):
return self._x
@ -3206,5 +3212,5 @@ Acknowledgements
The author would like to thank the following people for offering suggestions,
corrections and assistance with various drafts of this article:
Georg Brandl, Nick Coghlan, Jim Jewett, Antoine Pitrou.
Georg Brandl, Steve Brown, Nick Coghlan, Jim Jewett, Antoine Pitrou.