我正在为Ansys Mechanical编写脚本,这些脚本是用IronPython2.7.0.40编写的.在我的脚本中,我需要将一个属性分配给ContactTimeStepControls.None
.请注意,这里的None
不是None
对象.
我的问题是,VS代码中的Pylint扩展将这里使用None
标记为语法错误(可能是因为它认为它是None
对象),并拒绝计算其余代码.以下是它提供的错误消息:
语法错误:无效语法(file:///[PathToMyScript],第264行)编译[Ln 264,第80列]
分析失败:‘无效语法(,第264行)’PYLINT(E0001:语法错误)[Ln 264,第81列]
我已try 通过以下两种方式禁用该错误消息:
# pylint: disable=syntax-error
Cxn.TimeStepControls = ContactTimeStepControls.None
和
# pylint: disable=E0001
Cxn.TimeStepControls = ContactTimeStepControls.None
两者都无法 suppress 错误.
以下是演示的屏幕截图:
因此,我有三个问题:
- 我是不是在压制派林特方面做错了什么?
- 有没有一些方法可以组织代码以避免错误(请注意,我不能更改
ContactTimeStepControls
的成员)? - 有没有其他方法来 suppress 这条线上的Pylint误差?
[1]dir(ContactTimeStepControls)
的输出如下(见bolded项):
['AutomaticBisection', 'CompareTo', 'Equals', 'Format', 'GetHashCode', 'GetName', 'GetNames', 'GetType', 'GetTypeCode', 'GetUnderlyingType', 'GetValues', 'HasFlag', 'IsDefined', 'MemberwiseClone',
'None', 'Parse', 'PredictForImpact', 'ReferenceEquals', 'ToBoolean', 'ToByte', 'ToChar', 'ToDateTime', 'ToDecimal', 'ToDouble', 'ToInt16', 'ToInt32', 'ToInt64', 'ToObject', 'ToSByte', 'ToSingle', 'ToString', 'ToType', 'ToUInt16', 'ToUInt32', 'ToUInt64', 'TryParse', 'UseImpactConstraints', '__和__', '__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__invert__', '__le__', '__lt__', '__ne__', '__new__', '__nonzero__', '__or__', '__r和__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__xor__', 'value__']
Edit:
我刚刚发现了另一个可能发生这种情况的地方,人们可能会更常见地经历这种情况.Microsoft的.NET API的System.Windows.Forms
模块的DialogResult
属性(link)具有None
属性,这将产生相同的效果.