From 8f3d9e3f1a60ccf7407e027b7fb8c01624498dc5 Mon Sep 17 00:00:00 2001 From: xujian Date: Tue, 5 Dec 2023 11:20:35 +0000 Subject: [PATCH 1/3] =?UTF-8?q?update=20=E7=BC=96=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83/openKylin-python=E8=AF=AD=E8=A8=80=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E8=A7=84=E8=8C=83.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xujian --- ...347\274\226\347\250\213\350\247\204\350\214\203.md" | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git "a/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" "b/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" index 91d6fc1..6e0b134 100644 --- "a/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" +++ "b/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" @@ -603,7 +603,7 @@ break和continue是非结构化的控制流语句,在循环体外使用会使 print('@Usage: input_filename nelements nintervals') sys.exit() -## 规则4.6 不应该在二进制运算符的两侧使用相同的表达式 +## 规则4.6 不应该在二进制运算符的两侧使用相同的表达式(python:S1764) 在二元运算符的两侧使用相同的值几乎总是一个错误。在逻辑运算符的情况下,这要么是一个复制粘贴错误,要么就是无效代码而应该被简化。在位运算符和大多数二元数学运算符的情况下,两侧使用相同的值会产生可预测的结果,应该简化代码。此规则将在a==a和a!=a上引发问题。 ### 错误代码 if a == a: # Noncompliant @@ -625,6 +625,14 @@ break和continue是非结构化的控制流语句,在循环体外使用会使 1 << 1 +## 规则4.7 标识运算符不应该用在不同的类型之间(python:S3403) +标识运算符is和is not检查它们两侧的操作物是否指向同一实例。因此当它们用于比较不同类型的对象时也会分别返回True和False。但是这样的比较只能是一个bug。 +### 错误代码 +myint = 1 +mystring = "1" +value = myint is mystring # Noncompliant. Always False +value = myint is not mystring # Noncompliant. Always True + # 5 单元测试 ## 规则5.1 单元测试的失败项应该被修复(common-py:FailedUnitTests) 单元测试项失败或错误通常表明引入了回归。应尽快处理这些失败测试项以降低修复相应回归的成本。 -- Gitee From 6f0edbcedf8e193a83dd320dfc29c89aff0cdbc8 Mon Sep 17 00:00:00 2001 From: xujian Date: Tue, 5 Dec 2023 11:21:36 +0000 Subject: [PATCH 2/3] =?UTF-8?q?update=20=E7=BC=96=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83/openKylin-python=E8=AF=AD=E8=A8=80=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E8=A7=84=E8=8C=83.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xujian --- ...26\347\250\213\350\247\204\350\214\203.md" | 59 ++++++++++--------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git "a/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" "b/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" index 6e0b134..8b9ec02 100644 --- "a/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" +++ "b/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" @@ -122,6 +122,36 @@ yield和return语句只有在函数的上下文中才有意义。在函数外使 if len(myList) == 0: pass +## 规则1.7 不应该在二进制运算符的两侧使用相同的表达式(python:S1764) +在二元运算符的两侧使用相同的值几乎总是一个错误。在逻辑运算符的情况下,这要么是一个复制粘贴错误,要么就是无效代码而应该被简化。在位运算符和大多数二元数学运算符的情况下,两侧使用相同的值会产生可预测的结果,应该简化代码。此规则将在a==a和a!=a上引发问题。 +### 错误代码 + if a == a: # Noncompliant + work() + + if a != a: # Noncompliant + work() + + if a == b and a == b: # Noncompliant + work() + + if a == b or a == b: # Noncompliant + work() + + j = 5 / 5 # Noncompliant + k = 5 - 5 # Noncompliant +### 例外代码 +本规则允许忽略下面的表达式: + + 1 << 1 + +## 规则1.8 标识运算符不应该用在不同的类型之间(python:S3403) +标识运算符is和is not检查它们两侧的操作物是否指向同一实例。因此当它们用于比较不同类型的对象时也会分别返回True和False。但是这样的比较只能是一个bug。 +### 错误代码 + myint = 1 + mystring = "1" + value = myint is mystring # Noncompliant. Always False + value = myint is not mystring # Noncompliant. Always True + # 2 错误和异常 ## 规则2.1 引发的异常类应该派生自BaseException类(python:S5632) @@ -603,35 +633,6 @@ break和continue是非结构化的控制流语句,在循环体外使用会使 print('@Usage: input_filename nelements nintervals') sys.exit() -## 规则4.6 不应该在二进制运算符的两侧使用相同的表达式(python:S1764) -在二元运算符的两侧使用相同的值几乎总是一个错误。在逻辑运算符的情况下,这要么是一个复制粘贴错误,要么就是无效代码而应该被简化。在位运算符和大多数二元数学运算符的情况下,两侧使用相同的值会产生可预测的结果,应该简化代码。此规则将在a==a和a!=a上引发问题。 -### 错误代码 - if a == a: # Noncompliant - work() - - if a != a: # Noncompliant - work() - - if a == b and a == b: # Noncompliant - work() - - if a == b or a == b: # Noncompliant - work() - - j = 5 / 5 # Noncompliant - k = 5 - 5 # Noncompliant -### 例外代码 -本规则允许忽略下面的表达式: - - 1 << 1 - -## 规则4.7 标识运算符不应该用在不同的类型之间(python:S3403) -标识运算符is和is not检查它们两侧的操作物是否指向同一实例。因此当它们用于比较不同类型的对象时也会分别返回True和False。但是这样的比较只能是一个bug。 -### 错误代码 -myint = 1 -mystring = "1" -value = myint is mystring # Noncompliant. Always False -value = myint is not mystring # Noncompliant. Always True # 5 单元测试 ## 规则5.1 单元测试的失败项应该被修复(common-py:FailedUnitTests) -- Gitee From c72b8062f82ad22ae366c409efa0fed908ec1fe1 Mon Sep 17 00:00:00 2001 From: xujian Date: Tue, 5 Dec 2023 11:22:38 +0000 Subject: [PATCH 3/3] =?UTF-8?q?update=20=E7=BC=96=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83/openKylin-python=E8=AF=AD=E8=A8=80=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E8=A7=84=E8=8C=83.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xujian --- ...24\250\347\274\226\347\250\213\350\247\204\350\214\203.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" "b/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" index 8b9ec02..cfd7313 100644 --- "a/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" +++ "b/\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-python\350\257\255\350\250\200\351\200\232\347\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" @@ -122,7 +122,7 @@ yield和return语句只有在函数的上下文中才有意义。在函数外使 if len(myList) == 0: pass -## 规则1.7 不应该在二进制运算符的两侧使用相同的表达式(python:S1764) +## 规则1.8 不应该在二元运算符的两侧使用相同的表达式(python:S1764) 在二元运算符的两侧使用相同的值几乎总是一个错误。在逻辑运算符的情况下,这要么是一个复制粘贴错误,要么就是无效代码而应该被简化。在位运算符和大多数二元数学运算符的情况下,两侧使用相同的值会产生可预测的结果,应该简化代码。此规则将在a==a和a!=a上引发问题。 ### 错误代码 if a == a: # Noncompliant @@ -144,7 +144,7 @@ yield和return语句只有在函数的上下文中才有意义。在函数外使 1 << 1 -## 规则1.8 标识运算符不应该用在不同的类型之间(python:S3403) +## 规则1.9 标识运算符不应该用在不同的类型之间(python:S3403) 标识运算符is和is not检查它们两侧的操作物是否指向同一实例。因此当它们用于比较不同类型的对象时也会分别返回True和False。但是这样的比较只能是一个bug。 ### 错误代码 myint = 1 -- Gitee