Rag*_*der -1 python variables class function python-3.x
我的问题是为什么我不能创建该类的对象并为其提供整数作为参数。它完全忽略了我作为参数传递给它的值。然而,如果我从类中调用 area 函数并将相同的数字传递到括号中,它将输出所需的结果 144。
根据我到目前为止所读到的内容,我的最佳猜测是,类函数的编码方式对于我希望实现的目标来说是不正确的。我是否需要让面积函数采用如下参数:self.length?
# -*- coding: utf-8 -*-
class square:
sides = 4
def __init__(self, length):
self.length = length
def area(self, length):
return length * length
box = square(12)
print(box.area())
Run Code Online (Sandbox Code Playgroud)
输出:TypeError: area() missing 1 required positional argument: 'length'
创建的对象不应该在该对象的生命周期内保存赋予它的值吗?如果调用看起来像这样,为什么当我告诉它第二次从区域方法打印时它会抛出另一个错误?
print(box.area(12))
output:144
print(box.area())
output: <bound method square_shape.area of <__main__.square_shape object at 0x7f5f88355b70>>
Run Code Online (Sandbox Code Playgroud)
如果这个问题的措辞有点奇怪,我很抱歉,但我只是在寻找尽可能多的信息,并试图更好地理解我在这里所做的事情。关于这个主题的其他问题并没有很好地理解我想要弄清楚的内容。
你正在考虑 self.length。length(前面没有“self.”)只是一个局部变量。如果这是一个论点,你需要提供它。
您可能想要的是:
def area(self):
return self.length * self.length