2016-07-05 78 views
-2

我需要一个reservation函数来调用该类的相应方法。如何在外部函数中调用方法

但是,如果我必须在类之外提供用户输入,我怎样才能将该参数传递给该方法?

class Stay: 
    def __init__(self): 
     self._type_room= '' 

    def set_type_room (self, NewRoom): 

     NewRoom= select_room() 
     self._type_room= NewRoom 


def select_room(): 
    Newroom= input ('insert') 
    if NewRoom == 'Single': 
     print ('ok') 
    else: 
     print ('only Single') 
    return NewRoom 

def reservation(): 
    stay= Stay() 
    stay.set_type_room(NewRoom) 
+1

不知道什么被要求在这里。你能澄清一下代码没有做的事吗? –

+0

如果我开始的代码告诉我“NewRoom”没有定义。 – Peter

+2

您应该从最后一行和'set_type_room'方法的参数中移除'NewRoom'。 –

回答

0

NewRoom没有定义(不存在)的功能reservation内或在全球范围内,所以你不能访问它。

当您通过select_room函数重新创建它时,您不必要地将参数传递给set_type_room。如果你想在set_type_room是setter方法

class Stay: 
    def __init__(self): 
     self._type_room= '' 

    def set_type_room (self): 
     self._type_room = select_room() 


def select_room(): 
    Newroom= input ('insert') 
    if NewRoom == 'Single': 
     print ('ok') 
    else: 
     print ('only Single') 
    return NewRoom 

def reservation(): 
    stay= Stay() 
    stay.set_type_room() 

所以,你可以删除的参数,你应该罚款

class Stay: 
    def __init__(self): 
     self._type_room= '' 

    def set_type_room (self, NewRoom): 
     self._type_room = NewRoom 

def select_room(stay): 
    NewRoom = input ('insert') 
    if NewRoom == 'Single': 
     print ('ok') 
    else: 
     print ('only Single') 
    stay.set_type_room(NewRoom) 

def reservation(): 
    stay = Stay() 
    select_room(stay) 
+1

此外,对“NewRoom”的赋值可能会被细分。 – jonrsharpe

+0

好点。我会更新答案 –

+0

使用这些外部函数是正确的吗?我必须在这个项目中使用一个类 – Peter