鱼C论坛

 找回密码
 立即注册
查看: 1064|回复: 3

[已解决]python第37课 课后习题 动动手0

[复制链接]
发表于 2020-8-9 15:30:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在类当中的函数能不能调用另一个函数,如果可以,应该怎么做?
我的代码问题出在哪?
class Ticket_price:
    def adult(self,days):
        if 1 <= days <= 5:
            return 100
        else:   
            return 120
    def children(self,days):
        return 0.5 * adult(self,days)

…………………………运行结果…………………………
a = Ticket_price()
>>> a.children(5)
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    a.children(5)
  File "D:/PYTHON/python小程序/037-0.py", line 8, in children
    return 0.5*adult(self,days)
NameError: name 'adult' is not defined
最佳答案
2020-8-9 15:40:33
张图南 发表于 2020-8-9 15:37
不对啊,还是会报错
a.children()
Traceback (most recent call last):

这样呢?
class Ticket_price:
    def adult(self,days):
        if 1 <= days <= 5:
            return 100
        else:   
            return 120
    def children(self,days):
        return 0.5 * self.adult(days)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-9 15:30:57 | 显示全部楼层
这样做:
class Ticket_price:
    def adult(self,days):
        if 1 <= days <= 5:
            return 100
        else:   
            return 120
    def children(self,days):
        return 0.5 * self.adult(self,days)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-9 15:37:48 | 显示全部楼层

不对啊,还是会报错
a.children()
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    a.children()
TypeError: children() missing 1 required positional argument: 'days'
>>> a.children(4)
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    a.children(4)
  File "D:/PYTHON/python小程序/037-0.py", line 8, in children
    return 0.5 * self.adult(self,days)
TypeError: adult() takes 2 positional arguments but 3 were given
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-9 15:40:33 | 显示全部楼层    本楼为最佳答案   
张图南 发表于 2020-8-9 15:37
不对啊,还是会报错
a.children()
Traceback (most recent call last):

这样呢?
class Ticket_price:
    def adult(self,days):
        if 1 <= days <= 5:
            return 100
        else:   
            return 120
    def children(self,days):
        return 0.5 * self.adult(days)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 11:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表