Repository navigation
Expand file tree
/
Copy pathclass.py
More file actions
125 lines (93 loc) · 2.43 KB
/
Copy pathclass.py
File metadata and controls
125 lines (93 loc) · 2.43 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
class Student(object):
def __init__(self, name, score, gender):
self.name = name
self.score = score
self.__gender = gender
def print_score(self):
print('%s: %s: %s' % (self.name, self.score, self.__gender))
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'
def get_gender(self):
return self.__gender
def set_gender(self, gender):
if 0 <= gender <= 100:
self.__gender = gender
else:
print('bad gender')
lisa = Student('Lisa', 99, 1)
bart = Student('Bart', 59, 2)
print(lisa.name)
print(lisa.print_score())
print(lisa.name, lisa.get_grade())
print(bart.name, bart.get_grade())
print(lisa.get_gender())
lisa.__gender = 2
print(lisa.get_gender())
lisa.set_gender(2)
print(lisa.get_gender())
lisa.set_gender(200)
print(lisa.get_gender())
class Student2(object):
@property
def score(self):
return self._score
@score.setter
def score(self, value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
s = Student2()
s.score = 60 # OK,实际转化为s.set_score(60)
print(s.score) # OK,实际转化为s.get_score()
#s.score = 9999
class Student3(object):
def __init__(self, name):
self.name = name
def __str__(self):
return 'Student object (name=%s)' % self.name
def __call__(self):
print('My name is %s.' % self.name)
print(Student3('Michael'))
t = Student3('Michael')
print(t)
t = Student3("Michael")
print(t())
test = 7.6
#print(int('7.6'))
print(int('88'))
print(int(test))
print('99 + 88 + 7.6 =', 99 + 88 + 7.6)
from functools import reduce
def str2num(s):
if '.' in s:
return float(s)
else:
return int(s)
def calc(exp):
ss = exp.split('+')
ns = map(str2num, ss)
return reduce(lambda acc, x: acc + x, ns)
def main():
r = calc('100 + 200 + 345')
print('100 + 200 + 345 =', r)
r = calc('99 + 88 + 7.6')
print('99 + 88 + 7.6 =', r)
main()
class Student(object):
def __init__(self):
self.a = 1
self.b = 2
def number(self):
for i, j in vars(self).items():
print(i,j)
s = Student()
s.number()
s.name = 'ejoin'
s.number()