Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 67e59b2

Browse files
committed
adicionando novo exemplo
1 parent db43898 commit 67e59b2

File tree

10 files changed

+145
-0
lines changed

10 files changed

+145
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import shelve
2+
3+
4+
5+
db = shelve.open('class-shelve')
6+
7+
for key in db:
8+
print(key, '->\n ', db[key].name, db[key].pay)
9+
10+
bob = db['bob']
11+
sue = db['sue']
12+
tom = db['tom']
13+
14+
print(bob.last_name())
15+
print(sue.last_name())
16+
print(tom.last_name())
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import shelve
2+
from person import Person
3+
from manager import Manager
4+
5+
6+
p1 = Person('bob smith', 42, 30000, 'software')
7+
p2 = Person('sue jones', 25, 40000, 'hardware')
8+
p3 = Person('tom tolis', 50, 50000)
9+
10+
db = shelve.open('class-shelve')
11+
db['bob'] = p1
12+
db['sue'] = p2
13+
db['tom'] = p3
14+
db.close()
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from person import Person
2+
3+
4+
5+
class Manager(Person):
6+
def giveRaise(self, percent, bonus=0.1):
7+
self.pay *= (float('1.' + str(percent)) + bonus)
8+
9+
10+
if __name__ == '__main__':
11+
tom = Manager(name='tom tolis', age=50, pay=5000)
12+
13+
print(tom.last_name())
14+
print(tom.pay)
15+
16+
tom.giveRaise(20)
17+
print(tom.pay)
18+
19+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import shelve
2+
fieldNames = ('name', 'age', 'job', 'pay')
3+
maxField = max(len(f) for f in fieldNames)
4+
5+
db = shelve.open('class-shelve')
6+
7+
while True:
8+
key = input('\nKey: ')
9+
10+
if not key:
11+
break
12+
13+
try:
14+
record = db[key]
15+
except:
16+
print(f'no such key: {key}')
17+
print(f' sem key: {key}')
18+
else:
19+
print('-'*30)
20+
for field in fieldNames:
21+
print(f'{field.ljust(maxField).title()} -> {getattr(record, field)}')
22+
23+
24+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import shelve
2+
from person import Person
3+
4+
fieldNames = ('name', 'age', 'job', 'pay')
5+
6+
db = shelve.open('class-shelve')
7+
8+
while True:
9+
key = input('\nkey: ')
10+
if not key:
11+
break
12+
if key in db:
13+
record = db[key] # update record exixtente
14+
else:
15+
record = Person(nome='?', age='?')
16+
17+
for field in fieldNames:
18+
currval = getattr(record, field)
19+
nextText = input(f'[{field}]={currval}\n\tnew: ')
20+
if nextText:
21+
setattr(record, field, eval(nextText))
22+
23+
db[key] = record
24+
db.close()
25+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Person:
2+
def __init__(self, name, age, pay=0, job=None):
3+
self.name = name
4+
self.age = age
5+
self.pay = pay
6+
self.job = job
7+
8+
# return ultimo nome
9+
def last_name(self):
10+
return self.name.split()[-1]
11+
12+
# dar aumento salarial
13+
def giveRaise(self, percent):
14+
self.pay *= float('1.' + str(percent))
15+
16+
if __name__ == '__main__':
17+
bob = Person('bob smith', 42, 3000, 'software')
18+
sue = Person('sue jones', 45, 4000, 'hardware')
19+
jonas = Person('jonas tes', 27, 1000, 'software')
20+
21+
print(sue.name)
22+
print(sue.pay)
23+
24+
sue.giveRaise(10)
25+
print(sue.pay)
26+
27+
print(bob.name)
28+
print(bob.job)
29+
30+
print(jonas.last_name())
31+
print(jonas.job)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import shelve
2+
3+
4+
5+
db = shelve.open('class-shelve')
6+
7+
sue = db['sue'] # puxando
8+
sue.giveRaise(25) # dando aumento
9+
db['sue'] = sue # mandando de volta
10+
11+
tom = db['tom']
12+
tom.giveRaise(20)
13+
db['tom'] = tom
14+
15+
db.close()
16+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /