|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 124665148 于 2017-8-8 13:02 编辑
#水池里的乌龟数量定义
class Turtle:
def turtle(self,x):
self.num1 = x
#水池里的小鱼数量定义
class Fish:
def fish(self,x):
self.num2 = x
#打印水池里的乌龟和小鱼数量
class print_g:
def print_count(self,x,y):
self.turtle = Turtle.turtle(x)
self.fish = Fish.fish(y)
print('总共有%d只乌龟,%d条鱼' % (self.turtle.num1,self.turtle.num2))
g = print_g()
g.print_count(1,10)
打印后报错:
Traceback (most recent call last):
File "<pyshell#327>", line 1, in <module>
g.print_count(1,10)
File "<pyshell#325>", line 3, in print_count
self.turtle = Turtle.turtle(x)
TypeError: turtle() missing 1 required positional argument: 'x'
貌似是说Turtle.turtle(x)里面需要两个参数,但是只传了一个x参数;但是老师用__init__就是传了一个参数的,问题出在哪里呢???求各位大神解答
为什么用init就可以,我自己定义的函数就不可以???
附上老师的写法:
class Turtle:
def __init__(self,x):
self.num = x
class Fish:
def __init__(self,x):
self.num = x
class Pool:
def pool_num(self,x,y):
self.turtle = Turtle(x)
self.fish = Fish(y)
def print_count(self):
print('水池里总共有%d只乌龟,%d条小鱼' %(self.turtle.num,self.fish.num))
p = Pool(1,10)
p.print_count() |
|