我正在尝试从这个类继承:
class Event(Clock, Calendar):
def __init__(self):
year,month,day, hours, minutes,seconds = time.localtime()[0:6]
eClock = Clock(hours,minutes,0)
eCal = Calendar(month, day, year)
def createEvent(self,year,month,day,hours,minutes):
year,month,day = date[0:]
hours,minutes = ttime[0:2]
要在此处创建活动:
sett = line[1:].split(",") # Line[1:] is going to be a
# date, such as 1/8/17 17:50.
date = sett[0]
ttime = sett[1]
ttime = ttime.split(":")
date = date.split("/")
Cevent = ttime + date
Cevent.event()
我还有另一个名为Reminder的课程:
event = Event.createEvent()
我尝试运行这个程序时,它给了我这个错误:
TypeError:必须使用Event调用未绑定方法createEvent() 实例作为第一个参数(没有取而代之)
我想知道为什么,以及如何将方法createEvent用于同一文件中的另一个类。
答案 0 :(得分:0)
绑定方法意味着从类中调用该方法。让我们看一个例子:
class MyClass:
def add(self, x, y):
return x+y
VS
def add_numbers(x, y):
return x+y
方法add_numbers()是一个未绑定的方法,这意味着它没有附加到任何类实例。要使用它,我们可以致电:
print(add_numbers(1, 2))
但是,当我们想调用方法add()时,我们需要MyClass类的实例:
class_instance = MyClass()
print(class_instance.add(1, 2))
注意,当我们想要调用add()方法时,我们首先要创建一个类的新实例,然后使用它来调用方法,在引擎盖下,python接受 class_instance 变量并将其作为“自我”传递给方法。在函数定义中看到的参数。
最后,您的问题在于:
event = Event.createEvent()
错误告诉您该方法期望事件类的实例,而不是类本身。如果可以在没有参数的情况下实例化Event类,那么正确的语法将是:
base_event = Event()
event = base_event.createEvent()
当然,实例化 base_event 变量的方法取决于您尝试使用的API。