面向对象作业联系
设计一个银行业务相关的简单程序,让它具有:
1.创建账户
2.存款
3.取款
4.展示账户信息
等基本功能。
用面向过程的思路设计
def account(name,number,balance): #返回一个字典 ''' :param name: 账户名 :param number: 账户号码 :param balance: 账户金额 :return: 返回一个字典 ''' return { 'name':name, 'number':number, 'balance':balance } def deposit(acct,mount): ''' :param acct: 账户字典 :param mount: 存款金额 :return: 没有返回值(None) ''' if mount <=0: print ("不能存负数金额") else: acct['balance']+=mount def withdraw(acct,mount): ''' :param acct: 账户字典 :param mount: 取款金额 :return: 没有返回值(None) ''' if mount >acct['balance']: print("余额不足!") else: acct['balance']-=mount def desc(acct): ''' :param acct:账户字典 :return: 返回该账户的字符串表示 ''' return '{name} :{balance}'.format(name=acct['name'],balance=acct['balance']) p=account('Tuple','1234123',8888) withdraw(p,200) deposit(p,2000) print(desc(p))
用“类”来替代没有语义的“字典”
class Account: pass def account(name,number,balance): #返回一个字典 acct=Account() acct.name=name acct.number=number acct.balance=balance return acct def deposit(acct,mount): ''' :param acct: 账户字典 :param mount: 存款金额 :return: 没有返回值(None) ''' if mount <=0: print ("不能存负数金额") else: acct.balance+=mount def withdraw(acct,mount): ''' :param acct: 账户字典 :param mount: 取款金额 :return: 没有返回值(None) ''' if mount >acct.balance: print("余额不足!") else: acct.balance-=mount def desc(acct): ''' :param acct:账户字典 :return: 返回该账户的字符串表示 ''' return '{name} :{balance}'.format(name=acct.name, balance=acct.balance) p=account('Tuple','1234123',8888) withdraw(p,200) deposit(p,2000) print(desc(p))
用“面向对象”的思路设计
class Account: def __init__(self,name,number,balance): self.name=name self.number=number self.balance=balance def deposit(self,mount): if mount <=0: print ("不能存负数金额") else: self.balance+=mount def withdraw(self,mount): if mount >self.balance: print("余额不足!") else: self.balance-=mount def desc(self): return '{name} :{balance}'.format(name=self.name, balance=self.balance) p=Account('Tuple','1234123',8888) p.deposit(2000) p.withdraw(1500) print(p.desc())