有没有一种方法可以检查符号在Python中是否是有效的运算符?

有没有一种方法可以检查符号在Python中是否是有效的运算符?,python,Python,isinstance可用于检查作为第一个参数的对象是否是作为第二个参数的classinfo类的实例或子类 a = 1 b = [1] isinstance(a,list) isinstance(b,list) 有没有类似的方法来检查Python中的操作符是否有效?差不多 isoperator('=') isoperator(':=') isoperator('<-') isoperator('=')) 等运算符(':=') 等运算符(“这可以通过围绕python内置的运算符模块包装一个

isinstance可用于检查作为第一个参数的对象是否是作为第二个参数的classinfo类的实例或子类

a = 1
b = [1]
isinstance(a,list)
isinstance(b,list)
有没有类似的方法来检查Python中的操作符是否有效?差不多

isoperator('=')
isoperator(':=')
isoperator('<-')
isoperator('='))
等运算符(':=')

等运算符(“这可以通过围绕python内置的
运算符
模块包装一个自定义函数来实现。值得注意的是,运算符可以作为字符串或lambda输入–我任意选择了字符串

import operator
import re
def test_operator(obj = [6], op_in = '> 1'):
  """
  returns true if operator can be performed, else false
  """
  # Use regex to parse the pattern
  pattern_funct = re.compile('[><=]+')
  pattern_num = re.compile('[0-9]+')
  # Access values
  funct = ''.join(pattern_funct.findall(op_in))
  num = float(''.join(pattern_num.findall(op_in)))

  # Lookup the operator function
  ops = {
      ">": operator.gt,
      ">=": operator.ge,
      "<": operator.lt,
      "<=": operator.le,
      "=": operator.eq,
  }   
  op_func = ops[funct]
  # Try to perform
  print(f'Trying `{obj}` with {op_in}:')
  try:
    op_func(obj, num)
    return True
  except  TypeError:
    return False


# Next!
x =[3]
print(test_operator(x,'>= 7 '), '\n' )
# False
print(test_operator(7,'>= 7 '))
# True
导入操作符
进口稀土
def test_运算符(obj=[6],op_in='>1'):
"""
如果可以执行运算符,则返回true,否则返回false
"""
#使用regex解析模式
模式函数=重新编译('[>=7'),'\n')
#假的
打印(测试运算符(7'>=7'))
#真的

如果使用语法糖运算符(即符号+、-、=,等等),则不适用,但您可以使用运算符的等效函数,并拥有更多的控制权。您希望如何使用此功能?包含无效运算符的程序根本不会运行,它将由于语法错误而无法编译。谢谢您的回答。
test_operator(x,'=7'))
获取KeyError
----------------------------------------------------------------------------------------KeyError回溯(最近一次调用最后一次)在---->1 test_运算符(x,'=7')在test_运算符(obj,op_in)19中“让我们将其添加到键中…
”=':operator.eq,
添加,再试一次。我的错误。说“=”,我的意思是赋值,实际上它不是运算符。您试图完成的是用另一种语言执行的吗?另外,感谢您接受我的回答。