キーワード=値を関数に引数として渡すことはできますか?値は別の関数の引数ですか?NameError:keyword = valueを使用しているときに名前が定義されていません
def get_dir():
repo_path = subprocess.call(["pwd"])
return repo_path
私はcreate_branch関数にupper_dir渡す:
branch = gitmods.create_branch(hostname, upper_dir)
今CREATE_私は私が私の作業ディレクトリを定義upper_dir
upper_dir='/somefolder'
を定義する例
については
枝は、それがnew_branchとupper_dir渡し、実行したsyscmd関数を呼び出す必要があります。
def create_branch(hostname, upper_dir):
random = randint(100000, 999999)
new_branch = 'git checkout -b removes-node-{0}'.format(random)
syscmd(new_branch, upper_dir)
repo_branch = 'git branch | grep "*"'
branch = syscmd(repo_branch)
branch = branch.split()[1]
return branch
他のいくつかの機能がたsyscmdを呼ぶが、彼らはそれに1つの引数を渡します。 私はたsyscmd機能は、私はそれがある(get_dirから値をデフォルトにしたいupper_dir受信しなかった場合はupper_dir
def syscmd(command, current_dir=upper_dir):
current_dir=str(get_dir())
popen = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=current_dir)
out, err = popen.communicate()
out = out.rstrip()
return out
に含まれる値をデフォルトに「= CWD」を取得しようとしています現在のLinuxディレクトリpwd
私が知る限り、Pythonはキーワード=値の引数を関数に渡すことができ、引数が指定されていない場合はデフォルト値をとります。 しかし、文字列ではなく、別の関数からの引数?
私はこのエラーを取得しています:あなたはこれをより簡単に行うことができます
def syscmd(command, current_dir=None):
if current_dir is None:
current_dir = str(get_dir())
popen = subprocess.Popen(command,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=current_dir)
out, err = popen.communicate()
out = out.rstrip()
return out
ファイルのコンパイル時に 'upper_dir'が定義されていません。 –
upper_dirが__main__で定義されているが、渡されている関数がモジュール内にある場合、どうすれば解決できますか? – ARL
また、 'os.getcwd()'も現在の作業ディレクトリを取得します。 – tdelaney