测试参数是否具有特定值

Test if parameter is with specific value

是否可以使用 if 或其他函数来测试变量具有在特定参数中传递的特定值?

例如,这里有一行代码可以检测文本字符串的语言。如果文本是英文的,我需要进行测试才能得出结论。此信息在参数 lang 中传递,如果是英语,则为 lang=en。如果变量 languagelang 不是 en,我将执行翻译成英语。

gola 不是为了更有效地翻译英文文本。或者让 googletrans 将英语翻译成英语而不进行测试可能更有效?什么会更有效率 - 从英语翻译成英语或执行我想要的检查。我将不得不翻译数千个字符串。

from googletrans import Translator

words = ['Many', 'like', 'name', 'kas', 'jauni burti']

translate = Translator()
for language in words:
    print(translate.detect(language))

结果

Detected(lang=en, confidence=1.0)
Detected(lang=en, confidence=1.0)
Detected(lang=en, confidence=0.95300263)
Detected(lang=lv, confidence=0.43629345)
Detected(lang=lv, confidence=1.0)

测试特定值

关于术语的几点说明:

  • 变量...一个“命名的自由对象”,例如wordsworddetected 低于
  • parameter ...函数定义中使用的函数输入,例如textdetect documentation
  • 参数 ... 传递给 function/method 的特定值,例如word 下面是传递给 translate.detecct
  • 的参数
  • attribute, member ... class/instance/object/... 的成员变量,例如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 returns 传递的 参数 的所有可用 属性

性能

根据 documentationgoogletrans 使用 Google 翻译 Ajax API ,很可能涉及一些网络操作。所以你应该自己衡量性能,最好是在目标系统上。