一部のコードの実行フローを見ていますが、次のように動作するかどうか疑問に思っています。
具体的にはelse
、この条件ツリーの節を見ています。構成パスがメモリに指定されていない場合は、構成パスを入力として受け取る関数を取得します。私が正しい入力をしたとしましょう。declareConfPath()
実行時に何かが指定されているかどうかをチェックした後に、コンピューターが条件付き埋め込みを実行する理由はありませんdeclareConfPath()
。
私の質問は、プログラムがケースをスキップするelse
か、またはケースを読み取り、ツリーの最初のケースで指定されelse
た新しい値を取るかです。スキップしない場合は、別のツリーを使用する代替ソリューションよりもはるかにまばらに必要なすべての条件を解決したことになります。そうでない場合は、数行のコードを複製する必要があります。それは高価ではありませんが、エレガントでもありません。confPath
declareConfPath()
if
elif
の代わりに使用するif
と、やりたいことが実現する可能性もありますが、わかりません。
confPath = None; # or if the file when opened is empty?
_ec2UserData = None;
localFile = False;
# As we are dealing with user input and I am still experimenting with what information counts for a case, going to use try/except.
# Checks if any configuration file is specified
if confPath == None: #or open(newConfPath) == False:
# Ask if the user wants to specify a path
# newConfPath.close(); <- better way to do this?
confPath = declareConfPath();
# If no path was specified after asking, default to getting values from the server.
if confPath == None:
# Get userData from server and end conditional to parsing.
_ec2UserData = userData(self);
# If a new path was specified, attempt to read configuration file
# Does the flow of execution work such that when the var is changed, it will check the else case?
else confPath != None:
localFile = True;
fileUserData = open(confPath);