Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从不同类调用方法_Python_Oop - Fatal编程技术网

Python从不同类调用方法

Python从不同类调用方法,python,oop,Python,Oop,让我们假设我有两个班“任务”和“天”。任务将具有任务的名称,然后通过“添加任务”可以多次出现同一任务(例如每周游泳3次)。我该如何安排课堂“日”(比如周一)来检查同一时间段内两项任务之间是否存在冲突 class Task(object): def __init__(self,name,type): self.name = name self.type = type self.instances = 0

让我们假设我有两个班“任务”和“天”。任务将具有任务的名称,然后通过“添加任务”可以多次出现同一任务(例如每周游泳3次)。我该如何安排课堂“日”(比如周一)来检查同一时间段内两项任务之间是否存在冲突

 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
是class
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'}

您可以找到有关类变量和实例变量的更多信息

要解决这个问题,您需要使用一个类变量,它是在类内部和类方法外部定义的变量。在下面的示例中,
time
是class
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'}

您可以找到有关类变量和实例变量的更多信息

“时间”的代表是什么?时间是以秒为单位的吗?时间是以小时为单位的,并且是一个“段”,例如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