python 基类是什么_确定Python类是抽象基类还是Con

news/2024/7/3 21:13:40

我的Python应用程序包含许多抽象类和实现。例如:import abc

import datetime

class MessageDisplay(object):

__metaclass__ = abc.ABCMeta

@abc.abstractproperty

def display(self, message):

pass

class FriendlyMessageDisplay(MessageDisplay):

def greet(self):

hour = datetime.datetime.now().timetuple().tm_hour

if hour < 7:

raise Exception("Cannot greet while asleep.")

elif hour < 12:

self.display("Good morning!")

elif hour < 18:

self.display("Good afternoon!")

elif hour < 20:

self.display("Good evening!")

else:

self.display("Good night.")

class FriendlyMessagePrinter(FriendlyMessageDisplay):

def display(self, message):

print(message)

FriendlyMessagePrinter是一个具体的类,我们可以使用它。。。FriendlyMessagePrinter().greet()Good night.

…但是MessageDisplay和FriendlyMessageDisplay是抽象类,试图实例化一个类将导致错误:TypeError: Can't instantiate abstract class MessageDisplay with abstract methods say

如何检查给定的类对象是否是(不可实例化的)抽象类?


http://www.niftyadmin.cn/n/605991.html

相关文章

ssh通过pem文件登陆服务器

一些为了安全操作&#xff0c;推荐使用私钥进行登录服务器&#xff0c;拿jenkins来说&#xff0c;默认的验证方式就是私钥实现方式 先在本机通过ssh-keygen直接生成公私钥如下在当前文件夹下生成my.pem(私钥)和my.pem.pub(公钥)ssh-keygen -t rsa -f my.pem -C "youremail…

.net笔试题

姓名&#xff1a; 日期&#xff1a; 1. 填空: (1)面向对象的语言具有________性、_________性、________性。 (2)能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。 (3)列举ADO.net中的五个主要对象_______________、_____________、…

Python(二)

Python(二) 1.循环 for 变量 in range(起点&#xff0c;终点&#xff0c;步长): 循环体 eg. for i in range(3):a int(input("请输入一个数&#xff1a;"))if a>1000:print("有大于1000的")breakwhile 循环 起点 while 表达式(bool):/终点 循环体 …

mysql的pagehelper排序_Mybatis-PageHelper分页/动态排序/对List遍历/where语句动态拼装

一、Mybatis-PageHelper实现分页public ServerResponse manageGetProductList(int pageNum, intpageSize){//startPage--start//填充自己的sql查询逻辑//pageHelper-收尾PageHelper.startPage(pageNum, pageSize);List productList productMapper.selectProductList();List pro…

无法在SQL 2005系统数据库中执行的T-SQL语句(XML处理)

表现:下面的代码, 在兼容性级别90的所有用户数据库和tempdb库中都能执行, 但无法在系统数据库中执行, 执行会收到如下错误:Msg 4121, Level 16, State 1, Line 2Cannot find either column "dbo" or the user-defined function or aggregate "dbo.f_test",…

[转贴]C#中调用Windows API的要点

在.Net Framework SDK文档中&#xff0c;关于调用Windows API的指示比较零散&#xff0c;并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下&#xff0c;希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话&…

陶哲轩实分析 命题7.2.9 绝对收敛判别法

设$\displaystyle\sum_{nm}^{\infty}a_n$是实数的形式级数&#xff0c;如果这个级数是绝对收敛的&#xff0c;那么它是条件收敛的. 证明&#xff1a;该级数绝对收敛&#xff0c;说明对于任意给定的正实数$\varepsilon$,都存在整数$N$,使得对于一切$p,q\geq N$&#xff0c;有$$\…

Python初识(三)

Python初识&#xff08;三&#xff09; 内置排序 a [9,5,6,4,7,8,4] print(id(a)) a.sort() print(id(a)) print(a)a [9,5,6,4,7,8,4] b sorted(a) print(id(a)) print(id(b)) print(b)冒泡 简单冒泡排序 a [5,8,9,3,2] for i in range(len(a)-1):for j in range(i1,len…