Я смотрю на поток выполнения для некоторого моего кода, и мне интересно, будет ли работать следующее.
В частности, я смотрю на предложение 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);
else
не имеет условия. Либо используйтеelse:
, либоelif condition:
. - person Hyperboreus   schedule 07.08.2013