如何解决创建类的实例时如何限制可能的输入例如只创建一个类的整数实例
在Python OOP中,创建对象时可以限制输入。
例如如果我只想将int对象用于一个类。因此,如果输入了字符串,则会返回错误。
我最初的想法是在init方法中编写一条if语句,如果不满足条件,该错误语句将返回错误消息。
上面的唯一问题是,似乎在init方法中返回一条语句远非理想。
任何指导将不胜感激
解决方法
您可以在方法标题中使用类型建议。与强制相比,这被认为是更好的做法。
def __init__(name: str) -> str:
return "Hello," + name
如果确实需要强制,则可以添加isinstance(变量,类型),像这样。
if not isinstance(name,str):
raise TypeError
,
实现此方法的基本方法是在__init__
方法中添加检查,如果将错误的类型传递给该检查,则会引发错误(通常为TypeError
)。您还希望使用function annotations向您的读者提示有关参数的预期类型。不过实际上,通常最好尝试将__init__
方法中传递的任何内容转换为您期望的类型。 Python非常灵活,利用这种灵活性为您带来优势对设计和构建应用程序以及任何可能希望利用代码的人都是有益的。
一个例子:
class Test:
def __init__(self,param: int):
self.my_param = int(param)
在上面的示例中,如果要将param
包装为一个异常,如果未处理该异常,则整个应用程序将崩溃。如果添加int()
转换,它将尝试将传递的任何内容转换为int
,从而只要传递的项目可以转换,就可以避免崩溃。在某些情况下,您绝对想指定要传递的确切类型,但是 flexibility 通常更为重要。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。