Python 内部类 - 对象编程

问题描述 投票:0回答:1

大家

我想了解Python的类和对象。 我对 python 还很陌生,想深入了解。

我正在努力并努力从内部类、特征中获取输出结果。

class Person:
    def __init__(self):
        pass

    def first_name(self, first_name ):
        self.first_name = first_name
        return self.first_name

    def middle_name(self, middle_name):
        self.middle_name = middle_name

    def last_name(self, last_name):
        self.last_name = last_name
        return self.last_name

    class Features:
        def __init__(self):
            pass
        def color(self, color):
            self.color = color
            return self.color

x = Person()
print(x.last_name('Jimmy'))

print(x.Features.color('Brown'))

相反,我收到此错误:TypeError:Person.Features.color()缺少 1 个必需的位置参数:'color'

有哪位好心人可以帮忙吗?谢谢,也谢谢你。

我确实尝试了一些堆栈答案并用谷歌搜索, 但没有令人满意的答案。

python class object inner-classes
1个回答
0
投票

我个人不会像这样嵌套类,但如果您出于某种原因想这样做,这是向前迈出的第一步。

class Person:
    class Features:
        def __init__(self, color=None):
            self.color = color

    def __init__(self, first, middle, last):
        self.first_name = first
        self.middle_name = middle
        self.last_name = last
        self.features = Person.Features()

    def __str__(self):
        return f"{self.last_name}, {self.first_name}\n\tHair Color: {self.features.color}"

person = Person("Jane", "Mary", "Doe")
person.first_name="Sara"
person.features.color = "Red"
print(person)

您还可以探索使用 getter 和 setter 的 Python 方式是什么?

© www.soinside.com 2019 - 2024. All rights reserved.