функции не выполняющие питон - PullRequest
2 голосов
/ 24 декабря 2009

У меня есть программа, которая запускается, когда функции не определены. Когда я помещаю код в функцию, она не выполняет код, который она содержит. Кто-нибудь знает почему? Часть кода:

def new_directory():  

 if not os.path.exists(current_sandbox):  
     os.mkdir(current_sandbox)  

Спасибо

Ответы [ 3 ]

4 голосов
/ 24 декабря 2009

Проблема 1 в том, что вы определяете функцию («def» - ​​это сокращение от «define»), но вы не вызываете ее.

def new_directory(): # define the function
 if not os.path.exists(current_sandbox):  
     os.mkdir(current_sandbox)

new_directory() # call the function

Проблема 2 (которая еще не поразила вас) заключается в том, что вы используете глобальный (current_sandbox), когда вам следует использовать аргумент - в последнем случае ваша функция будет в целом полезной и даже полезной для вызова из другой модуль. Проблема 3 - неправильный отступ - использование отступа 1 приведет к тому, что любой, кто должен прочитать ваш код (включая вас), сойдет с ума. Придерживайтесь 4 и используйте пробелы, а не символы табуляции.

def new_directory(dir_path):
    if not os.path.exists(dir_path):  
        os.mkdir(dir_path)

new_directory(current_sandbox)
# much later
new_directory(some_other_path)
4 голосов
/ 24 декабря 2009

Ваш код на самом деле является определением функции new_directory. Он не будет выполнен, если вы не сделаете вызов new_directory(). Поэтому, когда вы хотите выполнить код из своего поста, просто добавьте вызов функции, подобный этому:

def new_directory():  

 if not os.path.exists(current_sandbox):  
   os.mkdir(current_sandbox)

new_directory()

Не уверен, ожидаешь ли ты такого поведения.

1 голос
/ 24 декабря 2009
def new_directory():  
  if not os.path.exists(current_sandbox):  
     os.mkdir(current_sandbox)

new_directory() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...