Python方法参数限制类

时间:2014-12-23 13:09:54

标签: python class python-2.7 methods restriction

我想限制一组选项中的参数。如果调用该函数,则必须将参数限制为几个选项。 这就是我现在所拥有的

class GetFileMethod:
     URL = 'url'
     ATTACHMENT = 'attachment'

class MailClient
     def GetFile(self,method)

MailClient.GetFile(GetFileMethod.URL) #works ok, but
MailClient.GetFile("lalala") #should raise an error

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

def GetFile(self, method):
    if  method not in {'url','attachment'}:
        raise ValueError

我会使GetFileMethod成为MailClient类的一种方法,它会让生活更容易控制输入。

答案 1 :(得分:0)

将您的class MainClient更改为: - 您需要在method的命名空间中检查您提供的class GetFileMethod的值,以便: -

GetFileMethod.__dict__.values()


class MailClient:
    def GetFile(self, method):
        if method in GetFileMethod.__dict__.values():
            return 'Yes'
        else:
            return 'No'