2016-02-18 3 views
-2

Привет для данной функции У меня есть 2 параметра, которые являются строкой и Int, но я не знаю, что на первом месте. Поэтому у меня есть функция «pick_type()», которая пытается угадать порядок параметров. Поэтому мой вопрос заключается в том, что «pick_type()» неправильно догадывается о порядке, как это сделать и убеждаться, что «pick_type()» никогда не повторяет этот конкретный порядок?Отзыв тестера python

for iteration in range(0, 10): 

    args = [] 
    print("\n def test%d(self):" % (iteration)) 
    for input in range(num_arguments): 

     args += pick_type() 

    try: 
     result = target(*args) 
     code = test_to_string(target, args, result) 


    except TypeError as error: 
     code = test_to_string_exc(target, args, error) 


    for line in code.splitlines(): 
     print(" "+line) 

def pick_type(): 
    lista = [] 

    words = ['rhythms', 'rhythms', 'manager', 'training', 'hotel', 'destroy'] 
    word = choice(words) 
    num = random.randint(-100, 100) 

    lists = [word,num] 

    choices = choice(lists) 


    if choices == word: 
     lista.append(word) 
    else: 
     lista.append(num) 


    return lista 

ответ

0

Я бы предложил обернуть свой метод в классе, тогда у вас может быть постоянный список плохих заказов. Это не для меня ясно, что вы подразумеваете под «заказ», но все это, мы надеемся, это псевдо-код помогает:

class PickType: 
    def __init__(self): 
     self._bad_orders = [] 

    def pick_type(self): 
     ...# insert body here 
     if order in self._bad_orders: 
      ## pick another order 
     ## test the new order 
     if <order is bad>: 
      self._bad_orders.append(order) 

    ## if your test for bad orders is performed outside pick_type(), you just need a method to add to the list of bad_orders 
    def add_bad_order(self, order): 
     self._bad_orders.append(order) 
+0

, что я имею в виду того, если функция принимает строку первой, то в Int, неправильным порядком будет «тип выбора», предполагающий int как первый параметр, а затем строку как вторую. –

+0

, поэтому в этом случае вы можете добавить кортеж '(int, str)' в список '_bad_orders' – gariepy

Смежные вопросы