我有一段简单的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/

10-12 18:45