-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathrecursive_old_fail.py
More file actions
37 lines (30 loc) · 1013 Bytes
/
recursive_old_fail.py
File metadata and controls
37 lines (30 loc) · 1013 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from wypp import *
# Ein Flussabschnitt ist entweder
# - ein Bach mit Namen und Quelle, oder
# - ein Zusammenfluss eines Haupt- und Nebenflussabschnitts an einem bestimmten Ort.
@record
class Creek:
origin: str
name: str
@record
class Confluence:
location: str
mainStem: RiverSection
tributary: RiverSection
type RiverSection = Union[Creek, Confluence]
kinzig1 = Creek('Loßburg', 'Kinzig')
gutach = Creek('Schönwald', 'Gutach')
kinzig2 = Confluence('Hausach', kinzig1, gutach)
schutter1 = Creek('Schweighausen', 'Schutter')
heidengraben = Creek('Lahr', 'Heidengraben')
schutter2 = Confluence('Lahr', schutter1, heidengraben)
kinzig3 = Confluence('Kehl', kinzig2, schutter2)
# Name eines Flussabschnitts bestimmen
# Eingabe: den Flussabschnitt (Typ: RiverSection)
# Ergebnis: der Name (Typ: str)
def riverName(r: RiverSection) -> str:
if isinstance(r, Creek):
return r.name
elif isinstance(r, Confluence):
return riverName(r.mainStem)
print(riverName(kinzig3))