В настоящее время я пишу короткий код кода, который будет сравнивать etag для страницы веб-сервера в сохраненном документе на etag на сервере. Если они отличаются, код укажет на это. Мой код ниже: -2 ответов от 2 функций в новую функцию
import httplib
def currentTag():
f = open('C:/Users/ME/Desktop/document.txt')
e = f.readline()
newTag(e)
def newTag(old_etag):
c = httplib.HTTPConnection('standards.ieee.org')
c.request('HEAD', '/develop/regauth/oui/oui.txt')
r = c.getresponse()
current_etag = r.getheader('etag').replace('"', '')
compareTag(old_etag, current_etag)
def compareTag(old_etag, current_etag):
if old_etag == current_etag:
print "the same"
else:
print "different"
if __name__ == '__main__':
currentTag()
Теперь, рассматривая мой код, не существует на самом деле нет причин, чтобы пройти «ETag» от метода currentTag()
к newTag()
методе, учитывая, что уже существующие ETag не обрабатываются в newTag()
. Тем не менее, если я этого не делаю, как передать два разных значения в compareTag()
. Так, например, при определении compareTag()
, как я могу передать 'etag' из метода currentTag()
и 'current_etag' из метода newTag()
?
Как ваш код в настоящее время структурирована, нет причин для использования трех отдельных функций. И поскольку эти функции ничего не возвращают или не используются повторно, я не уверен, почему вы не просто делаете это процедурно. – Wilduck
Спасибо @Wilduck. У меня создалось впечатление, что более «Pythonistic» отделяет ваш код от меньших функций, чем длинная строка кода в одной функции. – thefragileomen
@ thefragileomen: Разделительный код - так, как вы его отделили - на самом деле это не очень разумно. Эти функции не имеют никакого независимого значения и не могут быть легко использованы повторно. Цель не «меньше». Цель «значимая». –