我编写了一个函数,并按如下方式调用它:
from lib import base_frequency
base_frequency("AB610939-AB610950.gb", "genbank")
#This calls the function that uses a BioPython code.
我如何传递函数参数如下?
base_frequency(AB610939-AB610950.gb, genbank)
注意缺少引号。我应该这么做吗?当函数参数为sting时,Python中有推荐的命名法吗?
我认为这需要我将文件名和记录格式转换为函数内的字符串。即:
AB610939-AB610950.gb to "AB610939-AB610950.gb"
genbank to "genbank"
我已经在函数内尝试了str(AB610939-AB610950.gb)
,但它没有完成工作。
如果没有引号,Python将把它解释为一个表达式。以第一个参数为例,
AB610939-AB610950.gb
Python会将其读取为两个变量AB610939
和AB610950
的gb
属性之间的减法操作,而不是字符序列。阻止这种情况的唯一方法是将其用引号括起来,使其成为字符串文字。
当函数参数为字符串时,是否有推荐的Python命名法?
是的。
将字符串字面值"括在引号"中。
下面是一对有效的例子:
base_frequency("AB610939-AB610950.gb", "genbank")
生成一对str
值,把它们推到堆栈上,并调用base_frequency函数。
如果第二个参数是未加引号的genbank
,那将意味着完全不同的东西。意思是"请查一下……的值"命名为genbank
的变量并传递其值。">
如果你请求一个不存在的变量,结果将是一个NameError。