Skip to content

Commit 8ebc60f

Browse files
committed
2019.2.17 继续修改 dataclasses demo
1 parent 75ae1a8 commit 8ebc60f

3 files changed

Lines changed: 49 additions & 16 deletions

File tree

section_02_data class/dataclass01.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@ class Point:
1010

1111
p = Point(1.5, 2.5)
1212
print(p)
13+
print(p.x, p.y, p.z)
1314

1415
p = Point(1.5, 2.5, 3)
1516
print(p)
1617

1718
p = Point(x=2, y=3)
1819
print(p)
1920

21+
print('---')
22+
2023

24+
# 传统方式实现
2125
class Point2:
2226
def __init__(self, x, y, z=0.0):
2327
self.x = x
@@ -31,3 +35,12 @@ def __repr__(self):
3135
p = Point2(1.5, 2.5)
3236
print(p)
3337
print(p.x, p.y, p.z)
38+
39+
print('---')
40+
41+
# 显示经过 dataclass 修饰的方法
42+
print(dir(p))
43+
print(p)
44+
print(p.__repr__())
45+
46+
print('---')

section_02_data class/dataclass02.py

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,19 @@
22

33

44
@dataclass
5-
class DataClassCard:
6-
rank: str
7-
suit: str
5+
class Point:
6+
x: float
7+
y: float
8+
z: float = 0.0
89

910

10-
queen_of_hearts = DataClassCard('Q', 'Hearts')
11-
print(queen_of_hearts)
12-
print(queen_of_hearts.rank)
13-
print(queen_of_hearts == DataClassCard('Q', 'Hearts'))
11+
p1 = Point(1.5, 2.5)
12+
print(p1.x, p1.y, p1.z)
1413

14+
p2 = Point(1.5, 2.5, 0)
15+
print(p2)
1516

16-
class RegularCard:
17-
def __init__(self, rank, suit):
18-
self.rank = rank
19-
self.suit = suit
17+
print(p1 == p2)
2018

21-
22-
queen_of_hearts = RegularCard('Q', 'Hearts')
23-
print(queen_of_hearts)
24-
print(queen_of_hearts.rank)
25-
print(queen_of_hearts == RegularCard('Q', 'Hearts'))
19+
print('---')
2620

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from dataclasses import dataclass
2+
3+
4+
@dataclass
5+
class DataClassCard:
6+
rank: str
7+
suit: str
8+
9+
10+
queen_of_hearts = DataClassCard('Q', 'Hearts')
11+
print(queen_of_hearts)
12+
print(queen_of_hearts.rank)
13+
print(queen_of_hearts == DataClassCard('Q', 'Hearts'))
14+
15+
16+
class RegularCard:
17+
def __init__(self, rank, suit):
18+
self.rank = rank
19+
self.suit = suit
20+
21+
22+
queen_of_hearts = RegularCard('Q', 'Hearts')
23+
print(queen_of_hearts)
24+
print(queen_of_hearts.rank)
25+
print(queen_of_hearts == RegularCard('Q', 'Hearts'))
26+

0 commit comments

Comments
 (0)