鱼C论坛

 找回密码
 立即注册
查看: 1504|回复: 6

[已解决]python小白求助

[复制链接]
发表于 2021-5-11 18:07:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 hiram321 于 2021-5-11 18:07 编辑

哪位大佬知道为什么在用(.durability)时得到<bound method Train.durability of <__main__.Train object at 0x00000220629F6C40>>
class Train:
    T = 100
    def __init__(self, model, age, origin, speed):
        self.model = model
        self.age = age
        self.origin = origin
        self.speed = speed

    def durability(self):
        self.durability = self.T
        return self.durability 

    def birthday(self):
        self.age +=1
        self.T -=10
        if self.T <= 0:
            print(f"{self.model} is no longer in operation.")
        else:
            return self.T

    def repair(self):
        self.T +=10
        if self.T >= 100:
            print(f"{self.model} is good as nwe!")
        else:
            return self.T
t_1 = Train('Waratah', 3, 'Sydney', 60)
print("{}, age {}.".format(t_1.model, t_1.age))
print(t_1.durability)
t_1.birthday()
print("{}, age {}.".format(t_1.model, t_1.age))
t_1.repair()
print(t_1.durability)
最佳答案
2021-5-11 19:53:41
hiram321 发表于 2021-5-11 19:25
谢谢大佬,大佬知道怎么改能让这个print输出为100吗?


方法 durability() 和 这个方法内的实例变量重名

导致你调用 t_1.durability 是调用函数 durability 而不是实例变量 durability

变量名改改就行,参考代码:
class Train:
    T = 100
    def __init__(self, model, age, origin, speed):
        self.model = model
        self.age = age
        self.origin = origin
        self.speed = speed

    def durability(self):
        self.durability_ = self.T
        return self.durability_

    def birthday(self):
        self.age +=1
        self.T -=10
        if self.T <= 0:
            print(f"{self.model} is no longer in operation.")
        else:
            return self.T

    def repair(self):
        self.T +=10
        if self.T >= 100:
            print(f"{self.model} is good as nwe!")
        else:
            return self.T
t_1 = Train('Waratah', 3, 'Sydney', 60)
print("{}, age {}.".format(t_1.model, t_1.age))
print(t_1.durability())
t_1.birthday()
print("{}, age {}.".format(t_1.model, t_1.age))
t_1.repair()
print(t_1.durability())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-11 18:25:45 | 显示全部楼层
print(t_1.durability)
因为你写了这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-11 18:45:58 | 显示全部楼层
学习中...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-11 19:25:49 From FishC Mobile | 显示全部楼层
柿子饼同学 发表于 2021-5-11 18:25
因为你写了这个

谢谢大佬,大佬知道怎么改能让这个print输出为100吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-11 19:53:41 | 显示全部楼层    本楼为最佳答案   
hiram321 发表于 2021-5-11 19:25
谢谢大佬,大佬知道怎么改能让这个print输出为100吗?


方法 durability() 和 这个方法内的实例变量重名

导致你调用 t_1.durability 是调用函数 durability 而不是实例变量 durability

变量名改改就行,参考代码:
class Train:
    T = 100
    def __init__(self, model, age, origin, speed):
        self.model = model
        self.age = age
        self.origin = origin
        self.speed = speed

    def durability(self):
        self.durability_ = self.T
        return self.durability_

    def birthday(self):
        self.age +=1
        self.T -=10
        if self.T <= 0:
            print(f"{self.model} is no longer in operation.")
        else:
            return self.T

    def repair(self):
        self.T +=10
        if self.T >= 100:
            print(f"{self.model} is good as nwe!")
        else:
            return self.T
t_1 = Train('Waratah', 3, 'Sydney', 60)
print("{}, age {}.".format(t_1.model, t_1.age))
print(t_1.durability())
t_1.birthday()
print("{}, age {}.".format(t_1.model, t_1.age))
t_1.repair()
print(t_1.durability())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-11 20:18:17 | 显示全部楼层
hiram321 发表于 2021-5-11 19:25
谢谢大佬,大佬知道怎么改能让这个print输出为100吗?


楼上说的对,把变量名改一下就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-11 20:42:43 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2021-5-11 19:53
方法 durability() 和 这个方法内的实例变量重名

导致你调用 t_1.durability 是调用函数 durability ...

谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 20:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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