菜鸟请教个python中类的问题

此去依然 2013-06-18 12:43:11
上午刚开始学的
class Bird(object):
have_feather = True
can_fly = True
can_swim = False
danger = False
position = [0,0]
def move(self,dx,dy):
self.position[0] = self.position[0]+dx
self.position[1] = self.position[1]+dy
return self.position
def run(self,dx,dy,a,danger):
if(danger):
self.position[0] = self.position[0]+dx*a
self.position[1] = self.position[1]+dy*a
else:
dx_ = dx
dy_ = dy
self.move(dx_,dy_)
return self.position

class Chicken(Bird):
can_fly = False
can_be_ate = True


#littersam = Chicken()
#print littersam.can_fly
#print littersam.move(4,4)
litterchicken = Chicken()
print litterchicken.can_fly
print litterchicken.can_be_ate
print litterchicken.run(5,5,2,False)


根据我的YY,这两个对象应该是互相独立的,但是实际结果是第二个对象会受到第一个对象的影响。。。
加注释,run的结果是5,5
去掉注释,run的结果是9,9
纯新手,求指点。。
...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
此去依然 2013-06-18
  • 打赏
  • 举报
回复
引用 1 楼 CrySleeper 的回复:

def __init__(self):
    self.have_feather = True
    self.can_fly = True
    self.can_swim = False
    self.danger = False
    self.position = [0,0]
3Q~,刚才看书太不细致了,__init__()没仔细看
CrySleeper 2013-06-18
  • 打赏
  • 举报
回复

def __init__(self):
    self.have_feather = True
    self.can_fly = True
    self.can_swim = False
    self.danger = False
    self.position = [0,0]

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧