少し読んだ後、引数のリストを関数に渡すための2つの異なるアプローチに苦労していることに気づきました。私はいくつかの兆候を読みました。それは私がこれまでに理解したことです:
実際のコード:
ファイルcaller.py:
import worker
worker.version_check(iserver,login,password,proxyUser,proxyPass,
proxyServer,packageInfo)
worker.version_get(iserver,login,password,proxyUser,proxyPass,
proxyServer,packageInfo)
worker.version_send(iserver,login,password,proxyUser,proxyPass,
proxyServer,packageInfo)
ファイル:worker.py:
def version_check(iserver,login,password,proxyUser,proxyPass,proxyServer,service):
#code and more code
def version_get(iserver,login,password,proxyUser,proxyPass,proxyServer,service):
#code and more code
def version_send(iserver,login,password,proxyUser,proxyPass,proxyServer,service):
#code and more code
そして今、私は持っています:
ファイルcaller.py:
import worker
args = (env, family, host, password, prefix, proxyServer,
proxyUser, proxyPass, option, jokerVar
)
worker.version_check(*args)
worker.version_get(*args)
worker.version_send(*args)
ファイル:worker.py:
def version_check(*args):
env = args[0]
family = args[1]
host = args[2]
password = args[3]
prefix = args[4]
proxyServer = args[5]
proxyUser = args[6]
proxyPass = args[7]
option = args[8]
jokerVar = args[9]
#code and more code
def version_get((*args):
env = args[0]
family = args[1]
host = args[2]
password = args[3]
prefix = args[4]
proxyServer = args[5]
proxyUser = args[6]
proxyPass = args[7]
option = args[8]
jokerVar = args[9]
#code and more code
def version_send(*args):
env = args[0]
family = args[1]
host = args[2]
password = args[3]
prefix = args[4]
proxyServer = args[5]
proxyUser = args[6]
proxyPass = args[7]
option = args[8]
jokerVar = args[9]
#code and more code
古いアプローチ(実際のコード)を使用すると、関数を1行だけで呼び出す方が「使いやすい」と思います(worker.pyで確認できます)。しかし、新しいアプローチを使用すると、関数ごとにすべて同じ変数を定義する必要があるため、コードがより広範囲になると思います。しかし、これはベストプラクティスですか?私はまだ遅い曲線でPythonを学んでいるので、コードに間違いがあったことをお詫びします。
そして重要なことの1つは、ほとんどの変数がデータベースから取得されるため、戦略的ではないということです。