Python中的类以及对象 与 self关键字的介绍

2024-01-08 22:02:13

Python中的类

类的定义

在Python中,是一种用户定义的复杂数据类型

提供了一种组织代码和数据的方式,用来创建现实世界对象的蓝图

一个类,是由成员变量(属性)和函数(类的方法)组成的

		|------成员属性
类------|
		|------类的方法
  • 定义格式

    class Teacher:					#-----类名
        def __init__(self) -> None: #-----初始化函数(内置函数)
            self.name = "susan"
            self.subject = "math"
            self.age = 33
            self.height = 164
            self.weight = 105
    

类的属性

即一些变量

class Teacher:					#-----类名
    def __init__(self) -> None: #-----初始化函数(内置函数)
        self.name = "susan"
        self.subject = "math"
        self.age = 33
        self.height = 164
        self.weight = 105		#-----变量

self关键字

什么是self

在Python中,self是约定俗成的标识符,用于表示类的实例。它实际上可以是任何标识符,但强烈建议使用self以提高代码的可读性和可维护性。self通常作为实例方法的第一个参数出现,它用于引用实例本身。

在定义一个类时,通常会创建各种方法,用于对类的属性进行操作或执行其他任务。这些方法可以访问类的属性和其他方法,而self则提供了对实例属性和方法的访问权限。

为什么需要self

在Python中,self的主要作用是允许类的实例方法访问类的属性和其他方法。没有self,实例方法无法知道它们所属的对象,也无法访问该对象的属性和方法。

下面是一个示例,演示了为什么需要self

class Person:
    def set_name(self, name):
        self.name = name

    def get_name(self):
        return self.name

# 创建两个Person实例
person1 = Person()
person2 = Person()

person1.set_name("Alice")
person2.set_name("Bob")

print(person1.get_name())  # 输出:Alice
print(person2.get_name())  # 输出:Bob

在上述示例中,self允许set_nameget_name方法访问每个Person实例的name属性。如果没有self,这些方法将无法区分不同的实例。

使用self的实例方法

实例方法是类中的方法,它们可以访问和操作实例的属性。要创建实例方法,需要在方法的参数列表中包含self参数。self参数通常作为方法的第一个参数出现,尽管可以使用任何有效的标识符。

以下是一个示例,演示如何定义和使用实例方法:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

    def bark(self):
        return f"{self.name}{self.breed})汪汪叫"

# 创建一个Dog实例
my_dog = Dog("Buddy", "Golden Retriever")

# 调用实例方法
bark_sound = my_dog.bark()

print(bark_sound)  # 输出:Buddy(Golden Retriever)汪汪叫

在上述示例中,__init__方法是一个特殊的实例方法,用于初始化实例的属性。bark方法是另一个实例方法,使用self来访问实例的namebreed属性。

总之,与Java中的this.比较相似

类的方法

包含在类中的一些函数或者说是方法

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

    def bark(self):
        return f"{self.name}{self.breed})汪汪叫"

对象

对象是类的实例化

  • object_name = class_name(),注意要有括号

  • class Teacher:
        def __init__(self):
            self.name = "susan"
            self.subject = "math"
            self.age = 33
            self.height = 164
            self.weight = 105
        def print_name(self):
            print(self.name)
        def print_age(self):
            print(self.age)
    
    teacher_zhang = Teacher()
    teacher_zhang.__init__()
    teacher_zhang.print_age()
    teacher_zhang.print_name()
    
  • image-20240103173749746

  • class Teacher:
        def __init__(self,name):  #---------相当于构造方法
            self.name = name
            self.age = 33
        def print_name(self):
            print(self.name)
        def print_age(self):
            print(self.age)
    teacher_cui = Teacher("cuiweiyang")
    teacher_cui.print_name()
    
  • image-20240103174244829

文章来源:https://blog.csdn.net/weixin_75111785/article/details/135406607
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。