我有一段简单的Python代码,我有很多这样定义的枚举:
import sys
from time import sleep
from enum import Enum
class BW(Enum):
LTE1p4 = 0
LTE3 = 1
LTE5 = 2
LTE10 = 3
LTE15 = 4
LTE20 = 5
我希望类的成员函数只接受此枚举类型作为参数,否则脚本不应运行,下面是我的主类:
class Breithorn:
def __init__(self):
self.RX_Settings = {}
self.TX_Settings = {}
def RX_BW(self,BW):
self.RX_Settings['BW'] = BW
我希望成员函数只接受以下类型的调用:
Breithorn.RX_BW(BW.LTE5)
拒绝(语法错误)此类调用:
Breithorn.RX_BW(44)
有人能解释一下怎么做吗?
最佳答案
您不能使这成为语法错误,因为这是在解析过程中发现的,此时解析器不知道这些符号绑定到什么。
您可以在函数的运行时check the type并引发异常。
Python使用duck类型来发现需要进行单元或集成测试的此类问题。
关于python - 仅Enum类型的参数Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35036389/