鱼C论坛

 找回密码
 立即注册
查看: 21|回复: 1

类和对象组合的问题

[复制链接]
发表于 6 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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').

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 6 小时前 | 显示全部楼层
你需要通过组合类的实例来访问其属性。具体来说,你可以通过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类中的[a]属性以及Dog类中的[b]属性:
print(g.t.a)  # 输出:This is Turtle
print(g.d.b)  # 输出:This is Dog

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-23 21:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表