Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Christopher Arndt Newsgroups: de.comp.lang.python Subject: =?utf-8?q?=5BPython-de=5D_Re=3A_Code_Style_Review?= Date: Mon, 28 Nov 2022 16:48:38 +0100 Lines: 36 Message-ID: References: <480b80d21e58d280c437b4854bfc7cf1@posteo.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de OE1yVYwUyQshj2cYUw0KeAoLQEbw8fJxpCJCK0da2tzA== Authentication-Results: mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=chrisarndt.de header.i=@chrisarndt.de header.b=B1ECyQ14; dkim-adsp=pass; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chrisarndt.de; s=dkim; t=1669650519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=78A5Qi61FMllauEys7Ag6FKjNFDzpjVyBdnsI27QvAM=; b=B1ECyQ14znAi929y92gOwUaT4Qy5DkCBYNTVZtvdiXO/Zduv1TbLvdQmjbc1QTcEbnML5F ri6gz02I8MhCoDzCi60JVqvp5YYVLxW+qxog/x9OW1BSynBTerlvHcplhuQ6jjWW7oJvyi U9wP/11BCDEmzR5WT4lkhbBSAWKRoSCFeY4Bj6FZF7wDNknnffqt4k3ADGwYL4B1zYxUUN P/sse84JfuwWMyrYVvpKHiFjuc1z57ZvijAnOKstITSQiaXmIuTpd/77npbCBAFATzNPH6 E/83IZY5/XiXlauYsotmulTF/ihV1lr0A9L1nXpwDU50TmZw3iknBENrprWNkg== Content-Language: en-US, de-DE In-Reply-To: <480b80d21e58d280c437b4854bfc7cf1@posteo.de> X-Spamd-Bar: / Authentication-Results: mx1.0x20.eu; auth=pass smtp.mailfrom=chris@chrisarndt.de Message-ID-Hash: XSEUEJ6WCAFUATUUKOCY5J4L5VPAT3GG X-Message-ID-Hash: XSEUEJ6WCAFUATUUKOCY5J4L5VPAT3GG X-MailFrom: chris@chrisarndt.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-python-de.python.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.7 Precedence: list List-Id: Die Deutsche Python Mailingliste Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com de.comp.lang.python:5865 Am 28.11.22 um 16:37 schrieb c.buhtz@posteo.jp: > Neben PyLint könntest du auch nochmal "flake8" auf den Code loslassen. Außerdem könntest du auch noch entweder "black" oder "yapf" oder ein ähnliches Tool benutzen, um den Code einheitlich und anhand üblicher Gepflogenheiten zu formatieren. Weiterhin: - Sortiere die Imports mit "isort" - Strukturiere den Code in Sektionen. Vorschlag - Module docstring - Imports - Global constants and variables - Exceptions - Classes - Helper functions - main function Momentan sind bei dir Code auf globaler Ebene und Funcktionen wild gemischt. Das ist ziemlich unübersichtlich und verleitet m.E. dazu, den angemessenen "Separation of concern" aus dem Auge zu verlieren. Auf globaler Ebene würde ich idR wirklich nur einige wichtige Konstanten definieren und den Rest in eine "main"-Funktion verschieben. Diese wird dann am Ende des Scripts aufgerufen mit: if __name__ == '__main__': main() Das zwingt dazu, sich überlegen zu müssen, welche Daten wirklich global sein müssen und wie ansonsten Daten zwischen Funktionen und Klassen weitergereicht werden. Chris