2401_89115052 2025-10-05 16:32 采纳率: 37.5%
浏览 7

python类和对象

刚学python类和对象,想知道创建类时,"init"和后续方法中为什么必须要有self?创建对象"object=ClassName.()"或调用方法”object.method()“,感觉没有self,逻辑也足够清晰?所以我按照个人理解写了没有self的类创建过程(当然不对),麻烦指正我认知错误的地方。

class Dog:
    def _init_(name):
        NAME=name

    def sit(NAME):
        print(f"{NAME} is now sitting")

my_dog=Dog("willie")
my_dog.sit(NAME)
  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-10-05 16:32
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    理解类和对象

    在Python中,self 是一个关键字,用于指代当前实例对象本身。每当你创建一个类的实例时,Python都会自动将该实例传递给实例方法中的第一个参数,即 self

    为什么必须要有 self

    当你创建一个类时,Python会自动将实例方法中的第一个参数设为 self。这意味着,当你调用实例方法时,Python会将实例本身传递给该方法。

    例如:

    class Person:
        def __init__(self, name):
            self.name = name
    
        def say_hello(self):
            print(f"Hello, my name is {self.name}")
    
    p = Person("John")
    p.say_hello()  # Output: Hello, my name is John
    

    在上面的例子中,selfsay_hello 方法的第一个参数。每当你调用 p.say_hello() 时,Python会将 p 实例传递给 say_hello 方法中的 self

    创建对象和调用方法

    你可以通过以下方式创建对象和调用方法:

    object = ClassName()
    object.method()
    

    在这种情况下,Python会自动将实例传递给实例方法中的 self

    总结

    self 是一个关键字,用于指代当前实例对象本身。每当你创建一个类的实例时,Python都会自动将该实例传递给实例方法中的第一个参数,即 self。这使得你可以访问和操作实例的属性和方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月5日