微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

在下面,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 举报,一经查实,本站将立刻删除。