Python从不同类调用方法
让我们假设我有两个班“任务”和“天”。任务将具有任务的名称,然后通过“添加任务”可以多次出现同一任务(例如每周游泳3次)。我该如何安排课堂“日”(比如周一)来检查同一时间段内两项任务之间是否存在冲突Python从不同类调用方法,python,oop,Python,Oop,让我们假设我有两个班“任务”和“天”。任务将具有任务的名称,然后通过“添加任务”可以多次出现同一任务(例如每周游泳3次)。我该如何安排课堂“日”(比如周一)来检查同一时间段内两项任务之间是否存在冲突 class Task(object): def __init__(self,name,type): self.name = name self.type = type self.instances = 0
class Task(object):
def __init__(self,name,type):
self.name = name
self.type = type
self.instances = 0
self.start = 0
self.end = 0
self.total_time = []
def add_task(self,day,start,end):
self.day = day
monday.add_new_task(self,start,end)
self.start = start
self.end = end
self.instances += 1
self.total_time += [start,end]
class Day(object):
time_available = []
check_time = []
def __init__ (self):
for i in range(24):
self.time_available.append(i)
def add_new_task (self,start,end):
print start
print end
if self.time_available.__contains__(self,start):
print "Contains"
add_new_任务的逻辑被简化,但这只是一般的想法。
我是python新手,所以语法是我逐渐熟悉的东西。要解决这个问题,需要使用一个类变量,它是在类内部和类方法外部定义的变量。在下面的示例中,
time
是classDay
的类变量;您可以访问类变量,即time
作为Day.time
类变量在某种程度上独立于类实例。例如,假设d
是Day
的一个实例,那么d.time
和Day.time
之间存在细微但重要的区别。下面的示例帮助您理解它
class Day(object):
"""docstring for Day"""
time = {'name':'Allen'}
def __init__(self, arg):
self.arg = arg
class Task(object):
"""docstring for Task"""
def __init__(self, arg):
self.arg = arg
print Day.time # Prints {'name': 'Allen'}
d = Day(10)
d.time = 12
print d.time # Prints 12
print Day.time # Prints {'name': 'Allen'}
您可以找到有关类变量和实例变量的更多信息 要解决这个问题,您需要使用一个类变量,它是在类内部和类方法外部定义的变量。在下面的示例中,
time
是classDay
的类变量;您可以访问类变量,即time
作为Day.time
类变量在某种程度上独立于类实例。例如,假设d
是Day
的一个实例,那么d.time
和Day.time
之间存在细微但重要的区别。下面的示例帮助您理解它
class Day(object):
"""docstring for Day"""
time = {'name':'Allen'}
def __init__(self, arg):
self.arg = arg
class Task(object):
"""docstring for Task"""
def __init__(self, arg):
self.arg = arg
print Day.time # Prints {'name': 'Allen'}
d = Day(10)
d.time = 12
print d.time # Prints 12
print Day.time # Prints {'name': 'Allen'}
您可以找到有关类变量和实例变量的更多信息 “时间”的代表是什么?时间是以秒为单位的吗?时间是以小时为单位的,并且是一个“段”,例如14-16,现在保持简单你的标题似乎不相关。如果我理解正确的话,你需要的是一个时间间隔树。你是指同一天的任务之间的冲突还是不同天的任务之间的冲突?在同一天提供更多细节和示例冲突。例:游泳12-14与足球13-15是冲突的。什么是“时间”的表示?时间是以秒为单位的吗?时间是以小时为单位的,并且是一个“段”,例如14-16,现在保持简单你的标题似乎不相关。如果我理解正确的话,你需要的是一个时间间隔树。你是指同一天的任务之间的冲突还是不同天的任务之间的冲突?在同一天提供更多细节和示例冲突。例:游泳12-14将与足球13-15发生冲突。我已经编辑了我的代码,显示了我试图做的事情,它给出了语法错误,我感觉我做了一些非常错误的事情,但这正是我试图得到的。显然有一个缩进错误。另一个错误是,您试图使用
self
self访问类变量。time\u available
是一个实例变量,请将其替换为Day.time\u available
我已编辑了我的代码^,但这正是我想要得到的。很明显,这里有一个缩进错误。另一个错误是,您试图使用self
self访问类变量。可用时间是一个实例变量,请将其替换为Day.time\u available