Python OOP输出返回错误,有人有想法吗?

Python OOP输出返回错误,有人有想法吗?,python,python-3.x,Python,Python 3.x,我目前正在学习如何用python编写面向对象的编程,我编写了这段代码(其中的一部分,其中的一部分是我正在学习的类的一部分) 类工具箱: 定义初始化(自我,工具): 通过 锤类: 定义初始化(自身,颜色): 通过 等级螺丝刀: 定义初始值(自身,大小): 通过 等级螺钉: 最大密封度=5 定义初始化(自): 自紧度=0 def松开(自): 如果(自紧度>0): 自紧度-=1 def拧紧(自): 如果(自紧度

我目前正在学习如何用python编写面向对象的编程,我编写了这段代码(其中的一部分,其中的一部分是我正在学习的类的一部分)

类工具箱:
定义初始化(自我,工具):
通过
锤类:
定义初始化(自身,颜色):
通过
等级螺丝刀:
定义初始值(自身,大小):
通过
等级螺钉:
最大密封度=5
定义初始化(自):
自紧度=0
def松开(自):
如果(自紧度>0):
自紧度-=1
def拧紧(自):
如果(自紧度<自最大紧度):
自紧度+=1
定义(自我):
返回“拧紧螺钉{}”。格式(自紧)
类钉:
定义初始化(自):
self.in_wall=False
def钉入(自身):
如果(非自墙):
self.in_wall=真
def移除(自):
如果(在墙壁中的自身):
self.in_wall=False
定义(自我):
返回“Nail{}in wall.”格式(“if self.in_wall else”not”)
锤子=锤子(“蓝色”)
sdriver=螺丝刀(“300”)
#tbox=工具箱()
工具1=工具箱(锤子)
tool2=工具箱(sdriver)
螺钉1=螺钉()
打印(螺钉1)
螺钉1.拧紧()
打印(螺钉1)
钉子1=钉子()
印刷品(1)
钉牢
印刷品(1)
打印(螺钉1)的输出有效,但打印(钉子1)给我相同的输出(钉子在墙上)两次,而不是钉子在墙上。我想我的逻辑有问题,我似乎无法理解。有人能帮我吗

谢谢!
Marc

您需要调用
钉入
-就像您已经使用
螺钉1一样。拧紧
。这样做(注意这里的括号):

使用此修复程序,您的代码可以工作:

Screw with tightness 0
Screw with tightness 1
Nail not in wall.
Nail in wall.

通过引用函数但不带括号,它是语法上有效的代码行,但它只是函数对象本身的一个表达式,并且由于您没有对它做任何操作(例如将其分配给变量),因此它将被简单地丢弃。

您需要在
中调用
nail\u。也要这样做
nail1.nail_in()
。注意括号。@ma.girard12我想知道您是否愿意分享这个示例的源代码。您没有定义“in_wall”,但您直接在
类Nail
中使用。在这个OOP练习中,你的方法和实例是什么?谢谢!我知道问题就在我眼前!!
nail1.nail_in()
Screw with tightness 0
Screw with tightness 1
Nail not in wall.
Nail in wall.