%s没有附带变量 - 这是如何工作的?

时间:2017-08-08 15:44:44

标签: python

我一直在寻找python scrapy蜘蛛的一些github回购。在此repo中,我找到了以下代码行:

FIRSTPAGE_URL_SYNTAX = 'http://%s.tumblr.com'
OTHERPAGE_URL_SYNTAX = 'http://%s.tumblr.com/page/%s'
name = "tumblr"

根据我发现的文档和SO帖子,%s需要对变量进行内联引用。如您所见,上面的代码不包含此类引用。这是工作代码吗?为什么呢?

2 个答案:

答案 0 :(得分:6)

这些变量用作模板。稍后在代码中,您会看到类似

的内容
~

FIRSTPAGE_URL_SYNTAX % user

您可以在字符串中使用OTHERPAGE_URL_SYNTAX % (user, page) 执行相同的操作:

{}

这允许用户轻松地重复使用这一个变量,如果他们需要引用具有相似主体的多个URL,而不是每次都必须重新键入整个URL。

答案 1 :(得分:2)

这些只是字符串。所有字符(包括%s)在字符串中都有效。当您使用%运算符时,需要替换值,而这些运算符并非在此处执行。他们将这些字符串声明为模板,并在以后将值替换为它们。

通过在同一个地方声明它们,可以更容易地找到它们并进行更改。这是一个很好的编码实践。