问题描述
是否可以使用if
或其他函数测试变量具有在特定参数中传递的特定值?
例如,这是一行代码,用于检测文本字符串的语言。我需要进行测试以得出文本是否为英文的结论。此信息在参数lang
内传递,在英语的情况下为lang=en
。如果变量lang
的{{1}}不是en
,我将翻译成英文。
gola不会翻译英文文本以提高效率。还是仅让language
将英语翻译成英语而不执行测试就更有效率了?效率更高的方法-将英语翻译成英语或执行我想要的检查。我将不得不翻译成千上万的字符串。
googletrans
结果
from googletrans import Translator
words = ['Many','like','name','kas','jauni burti']
translate = Translator()
for language in words:
print(translate.detect(language))
解决方法
测试特定值
关于术语的一些注意事项:
- 变量...“命名自由对象”,例如下方
words
,word
或detected
- 参数...在函数定义中使用的函数输入,例如detect documentation中的
text
- 参数...传递给函数/方法的特定值,例如
word
下的参数是传递给translate.detecct
的参数
类,实例/对象/ ...的 - 属性,成员...成员变量,例如
lang
和confidence
是Detected
实例的属性。
OP要求提供参数,变量和参数,但实际上需要的是属性。 下次请使用适当的术语以防止混淆。
它如何工作的示例:
from googletrans import Translator
words = ['Many','like','name','kas','jauni burti']
translate = Translator()
for word in words:
detected = translate.detect(word)
print(detected)
if detected.lang == "en":
print(" ","English")
else:
print(" ","not English!")
# print(dir(detected))
请注意,dir
返回所传递的参数的所有可用属性。
性能
根据documentation,googletrans
使用Google Translate Ajax API,最有可能涉及某些网络操作。因此,您应该自己衡量性能,最好是在目标系统上。