在python中创建强类型结构的类

strong-typing的Python项目详细描述


strong_typing是一个python包,其中包含一些要强烈创建的类 python中的类型化结构

strong_typing简而言之

在python中,所有变量都是弱类型的,这意味着一个变量可以 任何类型的所有值。然后,python解释器将在运行时推断 此变量可以执行的操作取决于它包含的内容。这是 称为“类型推断”。

在不同的情况下,这可能是一个问题

  • A function that does not receive the expected type as input
  • A variable or a class attribute whose type is changed through assignment

为了避免函数被错误的参数调用,可以使用python的 typing module)(但仅限于 用Python3)。若要检查变量是否未正确使用,可以安装 运行mypy module)。

但是如果最新的对于静态检查很好(不运行代码),那么它确实可以 不是你自己的代码。

例如,如果您设计的类需要某种类型的属性, mypy如果不错误地重写这些,则很容易检测到 具有错误类型数据的属性。

但是如果你把这个类放在一个python包中,并且其他人使用它, 无法确保他们会尊重您的属性类型。

为了确保它们是正确的,您需要为每个 属性并定义一个setter函数来保护您的值不被滥用 准备好了。我们就是这么做的:)

最后,您的课程可能会如下所示:

class MyTypedStruct(Struct):
  __ATTRIBUTES__ = [IntegerParameter(name="my_int"),
                    FloatParameter(name="my_float")]
  __DESCRIPTION__ = "A sample of class with typed attributes"

想知道更多吗?

找到完整的文档here

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
serversocket Java服务器socket中断如何   java通过随机类和排序为数组生成数据   @Column length大于255个字符的java实体   java在使用NIO2 API时消除检查异常   java使用用户凭据通过Microsoft Graph API上的控制台应用程序发送电子邮件   java将2个ArrayList一个接一个地显示到jTextArea中,根据输入的数据多次显示   java无法使用导入的库。安卓工作室。谷歌云端点jar   spring boot Neo4j Apoc在java中获取结果摘要时的情况   转义特殊字符javajson   无法在java中使用OpenCV读取图像,涉及unicode路径   swing Document Listener java“无法实例化DocumentListener类型”   java Piglatin,难以理解如何移动“.”一串   java映射请求基于一个可观察对象中的每个元素,使用改进?   java在可扩展字符串中搜索时,如何忽略字符的大小写?   在包中分组类的java约定   python为Java应用程序创建Ubuntu指示小程序   java Camunda:如何通过processInstanceId获取所有已完成的任务