Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Christopher Arndt Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Migration Python 2 auf 3 Date: Fri, 16 Mar 2018 15:50:28 +0100 Lines: 29 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de vt92wXMavaYUhxXU3I+9uA1QxS39H+P+BvWH22uhFW9g== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org X-Virus-Scanned: Debian amavisd-new at mx01.0x20.eu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 In-Reply-To: Content-Language: de-DE X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: Xref: csiph.com de.comp.lang.python:5143 Am 16.03.2018 um 15:35 schrieb Philipp Klaus Krause: > m = re.match(r'([^/]*)/([^/]*)/([^/]*)/(.*)$', name) > if (m >= 3): > > TypeError: '>=' not supported between instances of '_sre.SRE_Match' and > 'int' Der Python 2 Code benutzt offenbar ein undokumentiertes Verhalten, dass die Verwendung eines Regular Expression Match Objects im Integer-Kontext zulässt. Die Semantik dessen kann ich nicht genau sagen, aber ich vermute mal, dass es dem Attribut 'lastindex' eines Match Objects entspricht. Wenn dem so wäre, könntest du 'if (m >= 3):'* durch if m and m.lastindex >= 3: ersetzen. Jetzt hoffe ich für dich, dass für den Code Tests existieren! ;) * Der Original-Code hat übrigens noch einen Bug: wenn kein Match gefunden wird, ist m None. Und die Klammern sind auch unnötig (C-Programmierer?). Chris