在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第三方库


热门话题
Android中Twitter共享的java xAuth身份验证?   带有@XmlAnyAttribute和方法的java Bug?(使用JAXB-RI)   安卓 ArrayAdapter导致java。lang.NullPointerException   java如何使用JExel从现有excel文件中删除工作表   java树映射随机停止正确返回值   使用switch和scanner类java使用用户选择   java JCalendar多天选择   Java文件zip正在创建损坏的文件   Ajax调用中的java未定义错误   java处理JSON更改信息的最佳方法   java JNI不适用于AppKit线程   java在运行时为JTable的特定行设置背景色   java如何在for循环中添加按钮?   java在getclass()方法之后强制转换对象