2013-05-16 9 views
7

Czy można testować metody wewnątrz interaktywnego pythonu i zachować w nim puste linie?Jak skonfigurować python interaktywny, aby zezwolić na puste linie wewnątrz metod?

def f1(): 
    import random 
    import time 

    time.sleep(random.randint(1, 4)) 

Daje znajomy error

IndentationError: unexpected indent 

Więc tak obejście jest usunąć wszystkie puste linie funkcje wewnątrz. Chciałbym wiedzieć, czy to naprawdę obowiązkowe, aby móc uruchomić w trybie interaktywnym/REPL.

dzięki

+0

Dlaczego musisz wstawiać puste wiersze w tłumaczu? Czy kopiujesz i wklejasz? Tłumacząc to rozumiem, że masz na myśli interaktywny python. – SethMMorton

+0

Myślę, że masz problemy z białymi znakami @FogleBird wskazuje poprawnie, czyści białe znaki i kontynuuje z pustymi liniami bez problemów. Możesz użyć narzędzi do analizy statycznej, takich jak "pep8", które mogą wyświetlać ostrzeżenie o dodatkowych białych przestrzeniach. –

+1

@SethMMorton; poprawiłem pytanie, aby użyć verbage "interaktywny python". – javadba

Odpowiedz

8

Może nie być zbyt pomocne, ale to działa, jeśli puste linie są wcięte. Kropki pokazane dla jasności:

def f1(): 
....import random 
....import time 
.... 
....time.sleep(random.randint(1, 4)) 
+0

Działa nawet jedna spacja na pustych liniach; nie potrzebują pełnego wcięcia. – geoffspear

+1

Dodałem pojedyncze miejsce i tak, że praca. dzięki! btw, jeśli uważasz, że to jest rozsądne pytanie, o które pytam, czy mógłbybyś głosować na to pytanie? dzięki – javadba

0

jedna opcja, zwłaszcza dla kodu kopiowaniem wklejania do interaktywnego interpretera, jest osadzenie go w surowej ciąg dosłownym i exec go:

exec(r''' 
def f1(): 
    import random 
    import time 

    time.sleep(random.randint(1, 4))''') 

Jeśli kod ty Wprowadzanie już używa ciągów ''', zamiast tego otoczyć je cytatami r"""...""". Jeśli już używa zarówno ''' i, to nie zadziała.

Powiązane problemy