Function variable scope in python

前端 未结 3 716
无人共我
无人共我 2021-01-29 01:04

let\'s say we have two functions:

def ftpConnect(): 
    ftp = FTP(\'server\')
    ftp.login()
    ftp.cwd(\'/path\')

def getFileList():
    ftpConnect()
    fi         


        
3条回答
  •  北海茫月
    2021-01-29 01:17

    In my opinion, the most elegant solution would be to make a FTP-class, which would have the ftp-variable as a private attribute.

    class FTPConnection(object):
        def __init__(self, server):
            self._ftp = FTP(server)
    
        def connect(self): 
           self._ftp.login()
           self._ftp.cwd('/path')
    
    
        def getFileList():
            files = self._ftp.nlst()
            print(files)
    
    ftp = FTPConnection('server')
    ftp.connect()
    ftp.getFileList()
    

提交回复
热议问题