Attributausdrücke (Attributausdrücke), Lektion, Seite 724703
https://www.purl.org/stefan_ram/pub/attributausdruecke_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Attributausdrücke

Attributausdrücke

Für »getattr( math, 'floor' )« kann auch die Schreibweise »math.floor« verwendet werden.

Konsolenprotokoll
math.floor( 2.2 )
2

(Im Falle von »getattr( math, 'floor' )« könnte das zweite Argument auch eine Zeichenfolge sein, die erst während der Auswertung ermittelt wird. Bei Verwendung der Schreibweise »math.floor« ist der Attributname hingegen immer schon durch den Quelltext  festgelegt.)

Attribute von Numeralia

Da der Punkt hinter einer ganzen Zahl als Dezimalpunkt gedeutet wird, müssen ganzzahlige Numeralia eingeklammert werden, wenn ihnen ein Attributpunkt folgen soll.

Konsolenprotokoll
2.bit_length()
SyntaxError: invalid syntax
Konsolenprotokoll
( 2 ).bit_length()
2

Zuweisungen an Attribute

An Stelle von »setattr( f, "a", "b" )« kann auch die Schreibweise »f.a = "b"« verwendet werden. In diesem Falle gibt der Attributausdruck auf der linken Seite des Gleichheitszeichens eine Bindungsstelle  an, an welche dann das Objekt der rechten Seite gebunden wird.

Protokoll

o = lambda: None

hasattr( o, "Beispiel" )

False

o.Beispiel = 427

hasattr( o, "Beispiel" )

True
getattr( o, "Beispiel" )
427

Importstil

Es ist in der Regel besser, Modulnamen zu importieren und dann Attributausdrücke zu verwenden, weil dadurch an der Stelle der Verwendung das Herkunftsmodul deutlich gemacht und insgesamt weniger viele verschiedene Namen importiert werden (es ist übersichtlicher, wenn weniger Namen in der Bindungstabelle unseres Moduls eingetragen sind).

in bibliotheksfähigem Code bevorzugt

import math

print( math.pi )

3.141592653589793
in bibliotheksfähigem Code weniger üblicher

from math import pi

print( pi )

3.141592653589793

Reparieren von Modulen ⃗

Es ist im Grund auch möglich, die Attribute in einem anderen Modul  zu verändern. Jedoch macht man davon nur in Notfällen gebrauch, wenn es keine andere Möglichkeit gibt, um etwas zu erreichen. Beispielsweise zur Beseitigung von Fehlern in fremden Moduln.

Flicken von »math«

from math import pi

pi = 3

print( pi )

3

from math import pi

print( pi )

3.141592653589793

import math

math.pi = 3

print( math.pi )

3

from math import pi

print( pi )

3

import math

print( math.pi )

3

Übungsaufgaben

/   Übungsaufgabe

Wir nehmen an, daß in einem Skript oder einer Sitzung zunächst die Anweisung »import datetime« ausgeführt wurde.

Welchen Typ hat dann das Objekt ›datetime‹? (Versuchen Sie, dies durch Ausführung von Anweisungen herauszufinden.)

Welchen Typ hat das Objekt ›datetime.datetime‹? (Versuchen Sie, dies durch Ausführung von Anweisungen herauszufinden.)

Welchen Typ hat das Objekt ›datetime.datetime.now()‹? (Versuchen Sie, dies durch Ausführung von Anweisungen herauszufinden.)

Welche Attribute enthält dieses Objekt? (Versuchen Sie, eine Anweisung einzugeben, welche die Attribute des Objekts ausgibt.)

Versuchen Sie nun zu ermitteln, wie Sie die aktuelle Stunde der Uhrzeit ausgeben können. (Versuchen Sie, dies durch Ausprobieren von Anweisungen herauszufinden.) Um 9.28 Uhr sollte sich beispielsweise «9» ergeben.

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724703 stefan_ram:724703 Attributausdrücke Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724703, slrprddef724703, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/attributausdruecke_python