Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Python: Auslagern in Funktion
Autor
Schule Python: Auslagern in Funktion
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2490
  Themenstart: 2021-07-30

Hallo, ich möchte meinen funktionierenden Zellfärbeblock in eine Funktion auslagern. \sourceon Python \numberson from openpyxl import Workbook from openpyxl.styles import Color, PatternFill, Font, Border wb = Workbook() ws=wb.active leuchtendgrünFill = PatternFill(start_color="FF00FF00", end_color="FF00FF00", fill_type="solid") yellowFill = PatternFill(start_color="00FFFF00", end_color="00FFFF00", fill_type="solid") redFill = PatternFill(start_color="FFFF0000", end_color="FFFF0000", fill_type="solid") def def_zellenferber(li,nr,key): abso=0 if len(li)==1: # Färbeblock ws.cell(nr+2,key+1).fill = yellowFill if len(li)==2: ws.cell(nr+2,key+1).fill = leuchtendgrünFill if len(li)==3: ws.cell(nr+2,key+1).fill = redFill return \sourceoff jetzt fragt er mich: NameError: name 'ws' is not defined Im Hauptprogramm ist ws.definiert. Muß ich denn das gesamte Excel-Öffnungzeremoniell in die Funktion übertragen? Ich dachte, wenn man aus einer Funktion heraus den print-Befehl benutzt, wird doch auch dort gedruckt, wie aus dem Mainblock heraus. Also, die Tabelle wird in Excel zwar gedruckt, aber nicht gefärbt. Woran kann das liegen?


   Profil
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2964
  Beitrag No.1, eingetragen 2021-07-30

Wenn du ein Objekt (hier ein Excelworksheet-Objekt) innerhalb einer Funktion nutzen will, muss man entweder der Funktion sagen, dass sie dieses als globale Variable nutzen soll oder der Funktion das Objekt eben übergeben.


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2490
  Beitrag No.2, vom Themenstarter, eingetragen 2021-07-30

\quoteon(2021-07-30 15:13 - DerEinfaeltige in Beitrag No. 1) Wenn du ein Objekt (hier ein Excelworksheet-Objekt) innerhalb einer Funktion nutzen will, muss man entweder der Funktion sagen, dass sie dieses als globale Variable nutzen soll oder der Funktion das Objekt eben übergeben. \quoteoff Danke Einfältiger, erklärst Du bitte am Beispiel, wie man A (der Funktion sagen) und B (der Funktion das Objekt übergeben) macht? ich übergebe ja schon Variable...


   Profil
helmetzer
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 14.10.2013
Mitteilungen: 1531
  Beitrag No.3, eingetragen 2021-07-30

Kann den Fehler nicht reproduzieren.


   Profil
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]