Skip to content

Commit 8bab5b2

Browse files
committed
Extra arg for "method" (self) and "classmethod" (cls)
1 parent 0707127 commit 8bab5b2

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

pylint/checkers/design_analysis.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,11 +561,15 @@ def visit_functiondef(self, node: nodes.FunctionDef) -> None:
561561
ignored_args_num = ignored_pos_args_num + ignored_kwonly_args_num
562562

563563
argnum = len(args) - ignored_args_num
564-
if argnum > self.linter.config.max_args:
564+
if node.type in {"function", "staticmethod"}:
565+
max_args = self.linter.config.max_args
566+
elif node.type in {"method", "classmethod"}:
567+
max_args = self.linter.config.max_args + 1
568+
if argnum > max_args:
565569
self.add_message(
566570
"too-many-arguments",
567571
node=node,
568-
args=(len(args), self.linter.config.max_args),
572+
args=(len(args), max_args),
569573
)
570574
pos_args_count = (
571575
len(args) - len(node.args.kwonlyargs) - ignored_pos_args_num

0 commit comments

Comments
 (0)