<与孩子一起学编程>第十四章

对象

1、什么是对象?具有属性和方法(能够对对象做的操作)的某个实例可以称为对象。如,一个球,属性有球的颜色,球的大小,球的重量,方法有球的运动方向;

2、属性和方法。如1中所述,属性很好理解,就是能够描述对象特征的一些变量,方法可以理解为一些代码块,这些代码块可以对对象完成一些操作,和我们平时讲的函数有些相似;

3、什么是类?对象的描述(将要让这个对象做什么实现什么功能)或蓝图称为一个类;

4、创建类的一个实例。类的定义只是写了一个框架,将有什么样的属性,将要实现什么样的功能,都是空谈,只有使用类来建立一个真正的对象,类才会发挥真正的作用,该对象就称为这个类的实例。

5、特殊方法__init__()和__str__()。只要创建该类的一个新实例,就要运行__init__()方法,该方法可以向实例的属性传递自己希望的值,完成初始化。__str__()可以按照自己的想法打印类中 的内容,

如:def __str__(self):

msg = "Hi,I'm a "+self.size+" "+self.color+" ball!"

return msg

6、多态。同一个方法,不同的行为。同一个函数名的方法,用在不同的类中,实现的功能不同,称为多态。

7、继承。向父类学习。父类有的属性和方法子类也同样有,子类还可以新增自身的属性和方法,提高代码的复用率。

如:class GameObject:

def __init__(self,name):

self.name = name

def pickUp(self,player):

pass

class Coin(GameObject):#继承GameObject类

def __init__(self,value):

GameObject.__init__(self,"coin")#继承初始化方法并添加新的属性

self.value = value

def spend(self,buyer,seller):#添加新的方法

pass

8、Python中的关键字pass可以作为一个占位符,一时半会想不起来写什么内容的时候,先占位这,这样函数方法模块不会报错


动手试一试
1、为BankAccount建立一个类定义。它应该有一些属性,包括账户名(一个字符串)、账号(一个字符串或整数)和余额(一个浮点数),
另外还要有一些方法显示余额、存钱和取钱'''

class BankAccount:
def __init__(self,account_name,account_number):
self.account_name = account_name
self.account_number = account_number
self.account_overage = 0.0

def ShowOverage(self):
print "The account balance is ",self.account_overage

def Save(self,money):
self.account_overage = self.account_overage + money
print "You save ",money
print "The new overage is ",self.account_overage

def Withdrawal(self,money):
if self.account_overage >= money:
self.account_overage = self.account_overage - money
print "You withdrawal ",money
print "The new overage is ",self.account_overage
else:
print "You tried to withdrawal",money
print "Your balance is",self.account_overage
print "No enough funds"

myAccount = BankAccount("muyu", 123456)
print "Account name", myAccount.account_name
print "Account number", myAccount.account_number
myAccount.ShowOverage()

myAccount.Save(100)
myAccount.Withdrawal(20.5)
myAccount.Withdrawal(50)

2、建立一个可以挣利息的类,名为InterestAccount。这应当是BankAccount的一个子类(所以会继承BankAccount的属性和方法)。InternetAccount还
应当有一个对应利息率的属性,另外有一个方法来增加利息。为了力求简单,假设每年会调用一次addInternet()方法计算利息并更新余额'''
class BankAccount:
def __init__(self,account_name,account_number):
self.account_name = account_name
self.account_number = account_number
self.account_overage = 0.0

def ShowOverage(self):
print "The account balance is ",self.account_overage

def Save(self,money):
self.account_overage = self.account_overage + money
print "You save ",money
print "The new overage is ",self.account_overage

def Withdrawal(self,money):
if self.account_overage >= money:
self.account_overage = self.account_overage - money
print "You withdrawal ",money
print "The new overage is ",self.account_overage
else:
print "You tried to withdrawal",money
print "Your balance is",self.account_overage
print "No enough funds"

class InterestAccount(BankAccount):
def __init__(self, interest_rate):
BankAccount.__init__(self, "muyu", 123456)#继承BankAccount类
self.interest_rate = interest_rate

def addInterest(self):
interest = self.account_overage * self.interest_rate
print "Your interest is",interest
print "Your overall funds is",interest+self.account_overage

myAccount = InterestAccount(0.2)
myAccount.Save(100)
myAccount.Withdrawal(20.5)
myAccount.Withdrawal(50)
myAccount.addInterest()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值