测试参数是否具有特定值 测试特定值性能

问题描述

是否可以使用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))

解决方法

测试特定值

关于术语的一些注意事项:

  • 变量...“命名自由对象”,例如下方wordsworddetected
  • 参数...在函数定义中使用的函数输入,例如detect documentation中的text
  • 参数...传递给函数/方法的特定值,例如word下的参数是传递给translate.detecct的参数
  • 类,实例/对象/ ...的
  • 属性,成员...成员变量,例如langconfidenceDetected实例的属性。

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返回所传递的参数的所有可用属性

性能

根据documentationgoogletrans使用Google Translate Ajax API,最有可能涉及某些网络操作。因此,您应该自己衡量性能,最好是在目标系统上。