Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Т.к. переменные глобальные, то доступ к ним будет возможен из любого окружения.
x = 5 # глобальная переменная
def f()
print x # напечатает x
def my_func1():
# простой пример замыкания: отличается от предыдущего только тем, что мы все завернули в функцию
y = 5
def my_inner_func():
print y
my_inner_func() # напечатает 5
def my_func2(y):
# чуть более сложный пример
def my_inner_func():
print y
my_inner_func() # напечатает параметр y, переданный функции myfunc
def get_incrementer(step):
def my_inner_func(value):
return value+step
return my_inner_func
inc3 = get_incrementer(3) # создаем функцию, которая добавляет 3 к переданному ей числу
print inc3(7) # напечатает 10.
inc5 = get_incrementer(5) # создаем функцию, которая добавляет 5 к переданному ей числу
print inc5(7) # напечатает 12.
def ya_ne_poyehal(func):
def inner():
return func()+u" А я не поехал. Я купил мотыля и пошел на реку."
return inner
@ya_ne_poyehal
def get_serious_text():
return u"Кто-то там выступил с пакетом конструктивных предложений."
print get_serious_text() # а текст-то уже не серьезный
def get_serious_text():
return u"Кто-то там выступил с пакетом конструктивных предложений."
get_serious_text = ya_ne_poehal(get_serious_text)
print get_serious_text() # а текст-то уже не серьезный
unittest.TestCase есть методы assertAlmostEqual и assertNotAlmostEqual. Они вычисляют разницу между двумя числами, после округляют до указанного количества знаков после запятой и сравнивают результат с нулем. Конечно, списки с числами придется сравнивать вручную.
- # У вас матрица, поэтому берем по каждой строчке
- # из обоих обоих списков, после этого сравниваем
- # элементы в этих строках попарно.
- for x, y in zip(list1, list2):
- map(self.assertAlmostEqual, zip(x, y))
zip на itertools.izip, который возвращает генератор.Copy Source | Copy HTML
- def main():
- with open('test_mon', 'w') as MON:
- MON.write(monitor)
- try:
- unittest.main()
- finally:
- os.remove('test_mon')
- pass
- return 0
Copy Source | Copy HTML
- with open(filename, 'r') as IN:
- for line in IN:
- processing(line)
OptionParser и UnitTest в python скриптах