- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的整个团队都相信 Python 中的类型提示将帮助我们构建更易于维护的代码。每个人都支持在我们的整个项目中实现类型提示。
使用 mypy 一周后,我们意识到 mypy 并没有真正提醒您实现类型提示。如果您忘记实现类型提示,mypy 不会发出警告。理想情况下,我们需要类似于 flake8 的东西,它可以在出现不良行为时对开发人员进行检查和警告。
您的组织如何强制(尽可能)跨 Python 项目进行类型提示?
如果重要的话,我们会使用带有 Python 扩展的 Visual Studio。
最佳答案
Mypy 自带 command line options让您配置它对代码进行类型检查的严格程度。这些命令行选项也可以用 config file 表示。如果存在,mypy 将自动读取。
例如,如果您希望 mypy 在某些函数没有类型时报告警告,您需要使用 --disallow-untyped-defs
命令行标志。或者,使用 --strict
标志,它可以启用此标志以及其他几个有用的标志。 (运行 mypy --help
以获取有关 --strict
启用内容的最新描述)。
为了确保您组织中的每个人都以相同的方式对代码进行类型检查,我建议将包含您要使用的设置的 mypy.ini
配置文件提交到您的存储库。例如,这是我希望 mypy 尽可能多疑地对代码进行类型检查时使用的配置文件:
[mypy]
# Disallow dynamic typing
disallow_any_unimported = True
disallow_any_expr = True
disallow_any_decorated = True
disallow_any_generics = True
disallow_any_explicit = True
disallow_subclassing_any = True
# Disallow untyped definitions and calls
disallow_untyped_calls = True
disallow_untyped_defs = True
disallow_incomplete_defs = True
check_untyped_defs = True
disallow_untyped_decorators = True
# None and optional handling
no_implicit_optional = True
# Configuring warnings
warn_unused_ignores = True
warn_no_return = True
warn_return_any = True
warn_redundant_casts = True
# Misc things
strict_equality = True
# Config file
warn_unused_configs = True
此配置对于实际生产使用几乎肯定过于激进。特别是,您可能希望在全局或每个模块的基础上禁用某些“禁用动态类型”选项,尤其是当您的代码库需要广泛使用未类型化的第三方库时。
您可能还想找到一些方法来确定您的开发人员正在使用的 mypy 的确切版本 -- mypy 文档 recommend setting up some sort of runner script做这些事情。
关于Python 类型提示 : How do I enforce that project wide?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944201/
当调用特定方法时,我读到 Wide 和 Box 是首选,为什么不是 Box 和 Wide。谁能用一个小例子向我解释原因。 最佳答案 加宽:使用更窄的参数类型调用方法。 public class Tes
我四处搜索,但没有找到关于此错误的任何有值(value)的信息。 typedef struct { unsigned short string[]; } s; const s str
我正在尝试制作一个程序来显示用户订购的杂货。它会将数据写入另一个文件(完成后),并显示每个食物组的平均值。它是这样的: #include int main() { int beverage[3
我已经尝试应用 width 但它没有帮助,我想要的是制作可点击的外部填充。 .btn { background-color: red; padding: 10px; height: 20p
我想要一个单元格宽度超过 320 点的 UITableView。用户应该能够横向滚动以查看 UITableViewCell 的不同部分。 UITableView 是否可以实现这种行为,或者我应该去尝试
遵循 https://github.com/MtDersvan/tf_playground/blob/master/wide_and_deep_tutorial/wide_and_deep_basic
这个问题在这里已经有了答案: Calling the GetUserName WinAPI function with a mutable string doesn't populate the s
我觉得我最近掌握了 HTML 和 CSS。如果是 1998 年,我会感觉很棒。不幸的是,我需要更好地了解手机和平板电脑将如何呈现我的网站。 我想知道是否有可能强制设备以“广泛方式”呈现网络。例如,如果
我这样定义一个新类: @interface SomeClass : NSObject { int wide; } - (id)initWithWide:(int)value; @end 当我像
C# 有一个叫做 Using alias directives 的特性.他们允许你做一个像这样的类型的别名: using CustomerId = MyComp.MyProject.Core.Enti
在编写了一些 python 应用程序引擎应用程序之后,我发现自己在两种组织源代码树的方法之间左右为难:广度或深度。 具体而言,考虑一个小型咨询公司的内部应用程序来管理联系人管理、项目跟踪和报告以及员工
我的整个团队都相信 Python 中的类型提示将帮助我们构建更易于维护的代码。每个人都支持在我们的整个项目中实现类型提示。 使用 mypy 一周后,我们意识到 mypy 并没有真正提醒您实现类型提示。
我在 Windows 7 上运行 Active Perl 5.14。 我正在尝试编写一个程序,该程序将读入转换表,然后处理文件并用其他模式替换某些模式 - 以上所有内容均采用 Unicode (UTF
我有文件 /tmp/xxx下一个内容: 00000000 D0 BA D0 B8 │ D1 80 D0 B8 │ D0 BB D0 B8 │ D0 BA к и р и л и к 当我读取文
我正在尝试从文件中读取文本,挑选出所有字符并写入另一个文件。然后统计字数。 问题是 ENTER/newline 出现时。 如果原文是 first row second row 它变成读作 first
为了确保我的箱子的所有公共(public)工件都被记录(如果是最低限度的开始),我在我的 lib.rs src/main.rs:3:3 | 3 | #![deny(missing_docs)]
为了确保我的箱子的所有公共(public)工件都被记录(如果是最低限度的开始),我在我的 lib.rs src/main.rs:3:3 | 3 | #![deny(missing_docs)]
我需要(目前)使用一些 java api,不幸的是,它们只能通过 jvm 属性进行“配置”。 我知道这会影响多线程,因为一个线程修改属性可能会影响其他正在运行的线程。 所以我想在同步方法中执行此操作,
我正在 build 这个网站 http://www.saraswati.co.uk 如果你在这里查看: http://www.saraswati.co.uk/?page_id=12 您会看到我正在使用
我正在寻找一种智能设计模式,用于将站点范围的变量加载到项目中多个 View 的 ViewModel 中(以 DRY 方式)。模糊的问题,一个例子可以澄清事情: 在我的项目中,我有一个部分 View ,
我是一名优秀的程序员,十分优秀!