开发者

Functions not executing in Python [duplicate]

开发者 https://www.devze.com 2022-12-14 15:57 出处:网络
This question already has answers here: 开发者_运维技巧 Why doesn't the main() function run when I start a Python script? Where does the script start running?
This question already has answers here: 开发者_运维技巧 Why doesn't the main() function run when I start a Python script? Where does the script start running? (5 answers) Closed 7 months ago.

I have a program that runs when the functions have not been defined. When I put code into a function, it does not execute the code it contains. Why? Some of the code is:

def new_directory():

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


Problem 1 is that you define a function ("def" is an abbreviation of "define"), but you don't call it.

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

new_directory() # call the function

Problem 2 (which hasn't hit you yet) is that you are using a global (current_sandbox) when you should use an argument -- in the latter case your function will be generally useful and even usefully callable from another module. Problem 3 is irregular indentation -- using an indent of 1 will cause anybody who has to read your code (including yourself) to go nuts. Stick to 4 and use spaces, not tabs.

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)


Your code is actually a definition of a new_directory function. It won't be executed unless you make a call to new_directory().

So, when you want to execute the code from your post, just add a function call like this:

def new_directory():

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

new_directory()

I am not sure if that's the behavior you expect to get.


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

new_directory() 
0

精彩评论

暂无评论...
验证码 换一张
取 消