From 34c4fc33b006b0f115d01ec1b461d5b1bc0263b6 Mon Sep 17 00:00:00 2001 From: xujian Date: Tue, 5 Dec 2023 12:14:18 +0000 Subject: [PATCH 1/2] =?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" | 26 ++++++++++++++++++- 1 file changed, 25 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 a2feb0c..d2db3aa 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" @@ -438,7 +438,7 @@ new_exception.__cause__ = chained_exception [pep-0409](https://peps.python.org/pep-0409/) -# 3 参数与返回值 +# 3 类与方法 ## 规则3.1 __init__函数不应该有显示返回值(python:S2734) 在python中,__init__函数是一个特殊的方法,用于在创建类的实例时进行初始化操作。它没有显示的返回值,而是隐式的返回新创建的实例对象。 @@ -554,6 +554,30 @@ new_exception.__cause__ = chained_exception read_param=param param=1 print(strings,read_param) +## 规则3.4 实例和类的方法应该至少有一个参数 +每个实例方法都应该至少有一个参数,这个参数将引用调用该方法的对象实例。调用一个没有参数的实例方法将引发TypeError异常。按照惯例,实例方法的第一个参数通常命名为self。类方法,即使用@classmethod修饰的方法,也至少需要一个参数。不同的是这个参数将引用类本身,而不是类的实例对象。按照惯例,类方法的第一个参数通常命名为cls。请注意,__new__和__init_subclass__将类作为第一个参数,即使它们没有用@classmethod修饰。 + +### 错误代码 + class MyClass: + def instance_method(): # Noncompliant. "self" parameter is missing. + print("instance_method") + + @classmethod + def class_method(): # Noncompliant. "cls" parameter is missing. + print("class_method") +### 正确代码 + class MyClass: + def instance_method(self): + print("instance_method") + + @classmethod + def class_method(cls): + print("class_method") + + + @staticmethod + def static_method(): + print("static_method") # 4 控制流 -- Gitee From ee126c474846d7d87e929271bcbd7e221763debf Mon Sep 17 00:00:00 2001 From: xujian Date: Tue, 5 Dec 2023 12:16:31 +0000 Subject: [PATCH 2/2] =?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 --- ...\224\250\347\274\226\347\250\213\350\247\204\350\214\203.md" | 2 +- 1 file changed, 1 insertion(+), 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 d2db3aa..3d8e28b 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" @@ -554,7 +554,7 @@ new_exception.__cause__ = chained_exception read_param=param param=1 print(strings,read_param) -## 规则3.4 实例和类的方法应该至少有一个参数 +## 规则3.4 实例和类的方法应该至少有一个参数(python:S5719) 每个实例方法都应该至少有一个参数,这个参数将引用调用该方法的对象实例。调用一个没有参数的实例方法将引发TypeError异常。按照惯例,实例方法的第一个参数通常命名为self。类方法,即使用@classmethod修饰的方法,也至少需要一个参数。不同的是这个参数将引用类本身,而不是类的实例对象。按照惯例,类方法的第一个参数通常命名为cls。请注意,__new__和__init_subclass__将类作为第一个参数,即使它们没有用@classmethod修饰。 ### 错误代码 -- Gitee