Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

6 May, 2024: The networking issue during the past two days has been identified and fixed.


devel / comp.lang.python / Instantiating abstract classes

SubjectAuthor
o Instantiating abstract classesPeter Otten

1
Instantiating abstract classes

<mailman.270.1621620039.3087.python-list@python.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13224&group=comp.lang.python#13224

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: __pete...@web.de (Peter Otten)
Newsgroups: comp.lang.python
Subject: Instantiating abstract classes
Date: Fri, 21 May 2021 20:00:23 +0200
Lines: 31
Message-ID: <mailman.270.1621620039.3087.python-list@python.org>
References: <s88sfo$13je$1@ciao.gmane.io>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de 2OZxXEjeCVlD5wVrIDz5XAmpNkTg2E0bWxgOVfSr+v5A==
Return-Path: <python-python-list@m.gmane-mx.org>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.000
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'def': 0.04; 'traceback':
0.04; '(most': 0.05; 'last):': 0.05; 'mechanism': 0.07; 'message-
id:@ciao.gmane.io': 0.09; 'received:ciao.gmane.io': 0.09;
'received:gmane.io': 0.09; 'received:list': 0.09; 'typeerror:':
0.09; "can't": 0.14; 'import': 0.14; '93,': 0.16; 'bug,': 0.16;
'builtin': 0.16; 'derive': 0.16; 'from:addr:web.de': 0.16;
'received:116.202': 0.16; 'received:116.202.254': 0.16;
'received:116.202.254.214': 0.16; 'work:': 0.16; 'skip:@ 10':
0.18; 'to:addr:python-list': 0.23; 'cannot': 0.24; '>>>': 0.26;
'header:User-Agent:1': 0.31; "doesn't": 0.32; '"",': 0.32;
'class': 0.33; 'file': 0.38; 'pass': 0.64; 'received:116': 0.71;
'skip:f 30': 0.71; 'fraction': 0.84
X-Injected-Via-Gmane: http://gmane.org/
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101
Thunderbird/78.10.2
X-Mozilla-News-Host: news://news.gmane.io:119
Content-Language: en-US
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <s88sfo$13je$1@ciao.gmane.io>
 by: Peter Otten - Fri, 21 May 2021 18:00 UTC

Usually an abstract class cannot be instantiated:

>>> from abc import ABCMeta, abstractmethod
>>> from fractions import Fraction
>>> class A(Fraction, metaclass=ABCMeta):
@abstractmethod
def frobnicate(self): pass


>>> A()
Traceback (most recent call last):
File "<pyshell#287>", line 1, in <module>
A()
File "C:\Program Files\Python39-32\lib\fractions.py", line 93, in __new__
self = super(Fraction, cls).__new__(cls)
TypeError: Can't instantiate abstract class A with abstract method
frobnicate

However, if I derive from a builtin class that mechanism doesn't work:

>>> class A(int, metaclass=ABCMeta):
@abstractmethod
def frobnicate(self): pass


>>> A()
0

Is this a bug, or an implementation accident, or the expected behavior?

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor