假设我有两个班级"任务"和" Day"。任务将具有任务的名称,然后通过" add_task"你可以多次出现同一个任务(比如每周游泳3次)。我怎样才能上课#34; DAY" (比如星期一)检查同一时段内两个任务之间是否存在冲突?
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_task的逻辑已经简化,但这是一般的想法。 我是python的新手,所以语法是我熟悉的东西。
答案 0 :(得分:0)
为了能够解决这个问题,你需要使用一个类变量,它是在类内部和类方法之外定义的变量。在以下示例中,time
是类Day
的类变量;您可以访问类变量,即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'}
您可以找到有关类变量和实例变量here的更多信息。