为什么对象可以访问兄弟类的属性?

问题描述

在下面,Bird 和 Worm 派生自 Animal,为什么 Worm 对象可以访问 Bird 类中的属性?但是不能访问 Bird 类中的方法?我根本不希望 Worm 能够访问 Bird。

class Animal:
    name = None
class Bird(Animal):
    color = None
    def print_bird(self): print(f"bird color = {self.color}")
class Worm(Animal):
    length = None
    def print_worm(self): print(f"worm length = {self.length}")
W1 = Worm()
W1.length = 10 # works as expected
W1.print_worm() # works as expected
W1.color = "brown" # ??? Bird.color should only be for birds
W1.print_bird() # as expected,AttributeError: 'Worm' object has no attribute 'print_bird'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)