LEEFEI571 发表于 2025-2-23 14:52:12

类和对象组合的问题

我在学习小甲鱼老师类和对象课程中的组合时,如何访问到类(通过组合方式编写)中的属性,我的代码如下

class Turtle:
    a = 'This is Turtle'
    def say(self):
      print('Turtle says something')

class Dog:
    b = 'This is Dog'
    def say(self):
      print('Dog says something')

class Garden:
    t = Turtle()
    d = Dog()
    def say(self):
      self.t.say()
      self.d.say()

g = Garden()

如果我想通过Garden类实例化对象g访问到Turtle类中的a属性及Dog类中的b属性该如何操作?

我尝试了g.a或者g.b,系统均报错,提示对象没有相关属性(AttributeError: 'Garden' object has no attribute 'a').

烦请各位大佬指点,谢谢!


FishC 发表于 2025-2-23 14:52:17

你需要通过组合类的实例来访问其属性。具体来说,你可以通过Garden类中的Turtle和Dog实例来访问它们的属性。代码如下:

class Turtle:
    a = 'This is Turtle'
    def say(self):
      print('Turtle says something')

class Dog:
    b = 'This is Dog'
    def say(self):
      print('Dog says something')

class Garden:
    t = Turtle()
    d = Dog()
    def say(self):
      self.t.say()
      self.d.say()

g = Garden()
print(g.t.a)# Access Turtle's attribute 'a'
print(g.d.b)# Access Dog's attribute 'b'

你可以这样访问到Turtle类中的属性以及Dog类中的属性:


print(g.t.a)# 输出:This is Turtle
print(g.d.b)# 输出:This is Dog


这样,就可以成功访问到组合类中实例的属性。希望这个回答对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 类和对象组合的问题