gpt4 book ai didi

Python:与 OOP 中的类、属性和方法混淆

转载 作者:行者123 更新时间:2023-11-28 20:08:49 26 4
gpt4 key购买 nike

我现在正在学习 Python OOP,并且对下面代码中的某些内容感到困惑。

问题:

  1. def __init__(self, radius=1):参数/属性“radius = 1”到底是什么意思?为什么不直接叫“半径”?

  2. area() 方法没有参数/属性“radius”。它从代码中的哪里得到它的“半径”?它怎么知道半径是5?

    class Circle:
    pi = 3.141592

    def __init__(self, radius=1):
    self.radius = radius

    def area(self):
    return self.radius * self.radius * Circle.pi

    def setRadius(self, radius):
    self.radius = radius

    def getRadius(self):
    return self.radius

    c = Circle()

    c.setRadius(5)

此外,

  1. 在下面的代码中,为什么括号中缺少属性/参数 name

  2. was为什么不这样写:def __init__(self, name)def getName(self, name)?

    class Methods:
    def __init__(self):
    self.name = 'Methods'

    def getName(self):
    return self.name

最佳答案

def method(self, argument=value): 语法定义了一个关键字参数,带有默认值。使用该参数现在是可选的,如果您不指定它,则会使用默认值。在您的示例中,这意味着 radius 设置为 1

在一个方法中,使用self 参数引用实例。 nameradius 值作为属性存储在 self 上(self.name = 'Methods' self.radius = radius),稍后可以通过引用该命名属性来检索 (return self.name, return self.radius * self.radius * Circle.pi).

我衷心推荐您关注 Python tutorial ,它将解释所有这些以及更多内容。

关于Python:与 OOP 中的类、属性和方法混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com