【发布时间】:2023-04-06 21:17:01
【问题描述】:
我的问题是为什么我不能创建一个类的对象给它一个整数作为参数。它完全忽略了我作为参数传递给它的值。然而,如果我从类中调用 area 函数并将相同的数字传递到它的括号中,它将输出所需的结果 144。
到目前为止,我的最佳猜测是类函数的编码方式与我希望它实现的目标不正确。我是否需要让 area 函数接受它的参数,例如: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())
输出:TypeError: area() missing 1 required positional argument: 'length'
创建的对象不应该在对象生命周期内保存赋予它的值吗?如果调用看起来像这样,为什么当我告诉它第二次从 area 方法打印时它会引发另一个错误?
print(box.area(12))
output:144
print(box.area())
output: <bound method square_shape.area of <__main__.square_shape object at 0x7f5f88355b70>>
如果这个问题的措辞有点奇怪,我很抱歉,但我只是在寻找尽可能多的信息,并试图更好地了解我在这里所做的事情。关于这个主题的其他问题并没有很好地理解我想要弄清楚的内容。
【问题讨论】:
标签: python function class python-3.x variables