[英]Python inheritance (OOP)
我想创建python上课时间的继承者(descadent)。 我使用下一个脚本中的解决方案,但获取消息无法创建“ builtin_function_or方法”实例 。 请问哪里有问题?
from time import time as time
import _classA
class UserTime(time):
def __init__(self):
pass
time.time
是一个函数而不是一个类。 您不能从函数继承。 在模块时间struct_time
被定义为一个类。
from time import struct_time as time
class MyTime(time) :
def __init__(self, time_as_sequence) :
time.__init__(self, time_as_sequence)
# Do what you like
根据time.time的Python文档,导入的time
是一个函数,而不是一个类,这就是为什么您收到该错误消息的原因。
datetime.time可能是您需要的。
实际上,您尝试执行的操作是ILLIGAL :)无论如何,您都试图将无法执行的class time方法子类化。 这是为什么的一些解释:
>>> import time
>>> type(time.time)
<class 'builtin_function_or_method'>
>>> type(time)
<class 'module'>
从上面的时间中可以看到,time.time是类的内置函数或方法(在这种情况下,类为“ time”),即使您将类型强制转换为“ time”本身,其结果也会是“模块”,您也不能将其子类化。 但是,您可以做一些我不建议使用的操作,因为它没有用(我认为):
import time
class A(type(time)):
pass
它将神奇地成为“类型”类型的类,这就是您想要的,并回答了您的问题。
>>> type(A)
<class 'type'>
但是您必须以某种方式处理它,所以我的问题是,您实际上想完成什么? 您是否真的需要在幕后做一些魔术,可以用不同的方式(轻松地)完成某件事?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.