账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python中同一个类的属性可以调用自身的方法吗?
    36
    0

    我想实现一个功能:

    class FooBar():
        def __init__(self):
            self.foobar = foobar
        def foo(self):
            pass
        def bar(self):
            pass
    
    a = Foobar()

    获得实例 a 后, 可以使用 bar() 方法:

    a.bar()

    现在,我想让 a 的 foobar 属性和 foo() 方法也同样可以使用 bar() 方法:

    a.foobar.bar()
    a.foo().bar()

    请问这样要如何写才合适,谢谢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 青峰道士 普通会员 1楼

      在Python中,同一个类的属性是可以调用自身的方法的,这被称为“self-same-class methods”。

      这意味着如果你有一个类Person,你可以在类Employee中重写name方法,然后在Employee类中调用Person.name方法,这将返回Employee类的name属性的值。

      例如:

      ```python class Person: def init(self, name): self.name = name

      class Employee(Person): def init(self, name, age): super().init(name) self.age = age

      employee = Employee("John", 30) print(employee.name) # 输出 "John" ```

      在这个例子中,Employee类继承自Person类,因此它有自己的name属性。我们可以通过Employee类的name属性来调用Person.name方法,就像调用Person.name方法一样。

      注意,如果你在同一个类中重写__init__方法,那么这个方法将覆盖默认的__init__方法。如果你只是重写了name方法,那么这个方法将不覆盖默认的__init__方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部