关于imp.load_source的参数

时间:2017-10-30 16:52:08

标签: python python-2.7 python-3.x

我曾经看过以下python代码。这里f表示指向python文件的完整路径,我不清楚"arch_%s" % postfix用于什么?以及postfix如何在这里工作?

arch = imp.load_source("arch_%s" % postfix, f)

2 个答案:

答案 0 :(得分:0)

第一个参数只是一个名称,用于将加载的代码作为常规模块引用,并且与问题的第二部分无关。 %表示法是旧的format表示法。它与printf格式类似,所以

"arch_%s"%post_fix

只会将post_fix作为字符串%s插入 - 您可以在我的下一个示例中使用%d之类的其他内容),所以如果post_fix=64你会得到

arch_64

最好通常使用格式,如果它不是一个简单的替换,并且通常:

"arch_{}".format(post_fix)

答案 1 :(得分:0)

在Python中称为String formatting。它用于将某个字符串变量附加到anoter原始字符串。因此,在您的示例中,它会将post_fix中存储的字符串追加到字符串'arch_'

Python 3

由于您添加了python-3x作为标记,因此告诉您在python 3中应该使用format。这里有很多好examples。它实际上更适合这种类型的操作,因为它处理更多想要的行为。这来自文档;

  

本节包含新格式语法和比较的示例   使用旧的%-formatting。

     

在大多数情况下,语法类似于旧的%-formatting,   添加{}和with:使用而不是%。例如,   '%03.2f'可以翻译为' {:03.2f}'。

     

新格式语法还支持新的和不同的选项,如图所示   在以下示例中。

基本用例

在python 2.x

sentence = raw_input("Enter your name?")
print "Hi %s" %name

在python 3.x

name = input("Enter your name?")
print ("Hi {}".format(name))