惬意上手python —— python中的术语及案例解析

面向对象编程

面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将数据和操作数据的方法封装在一起,以对象的形式表示。在Python中,一切皆为对象,因此Python是一种面向对象的语言。

类是面向对象编程的基本概念,它是一种用户自定义的数据类型。类定义了一组属性和方法,用于描述该类的对象。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {
     self.name} and I am {
     self.age} years old.")

上面的代码定义了一个名为Person的类,它有两个属性(name和age)和一个方法(say_hello)。属性是类的数据成员,方法是类的函数成员。

实例

实例是类的具体化,也可以称作对象,它是类的一个具体实现。例如:

person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

上面的代码创建了两个Person类的实例,分别是person1和person2。

初始化方法

初始化方法是类的特殊方法,是类的魔法方法之一,它在创建类的实例时被调用,即无序调用,自动执行。它用于初始化类的属性。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

上面的代码定义了一个名为__init__的初始化方法,它有两个参数(name和age),用于初始化Person类的属性。

魔法方法

魔法方法是Python中的特殊方法,它们以双下划线开头和结尾。它们用于实现类的特殊行为。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
	# 用于且只能返回字符串
    def __str__(self):
        return f"{
     self.name} ({
     self.age})"

上面的代码定义了一个名为__str__的魔法方法,它用于返回Person类的字符串表示。

字符串方法

字符串方法是类的方法之一,它用于返回类的字符串表示。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"{
     self.name} ({
     self.age})"

上面的代码定义了一个名为__str__的字符串方法,它用于返回Person类的字符串表示。

self

self是Python中的特殊变量,它用于引用类的实例。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {
     self.name} and I am {
     self.age} years old.")

上面的代码中,self用于引用Person类的实例。
简单说,self就是在创建对象时,对象本身。下面的代码可以直接说明:

class Student:
    def __init__(self, name, age):
        print("初始化对象")
        print("self的id:", id(self))
        self.name = name
        self.age = age


s1 = Student("秀", 21)
print("s1的id:", id(s1))

s2 = Student("飞", 22)
print("s2的id:", id(s2))

输出结果:
在这里插入图片描述
上面的代码分别打印了self和实例的id,你会发现执行了两次,那是因为每创建一个对象,就会调用一次对应的类。并且self的id和实例的id时一模一样的!

数据、属性、操作、行为

在面向对象编程中,数据是类的属性,操作是类的方法,行为是类的特殊行为。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {
     self.name} and I am {
     self.age} years old.")

上面的代码中,name和age是Person类的数据,say_hello是Person类的操作,__str__是Person类的行为。

父类、基类、超类

父类、基类、超类是面向对象编程中的术语,它们用于描述类之间的关系。父类是一个类,它被其他类继承。子类是一个类,它继承自另一个类。基类和超类是父类的同义词。

子类、派生类

子类、派生类是面向对象编程中的术语,它们用于描述继承关系。子类是一个类,它继承自另一个类。派生类是子类的同义词。
并且子类可以继承父类的属性和方法:

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("汪汪")


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

    def eat(self):
        print("啃骨头")


class DogChild(Dog):
    def __init__(self, name, age, color):
        Dog.__init__(self, name, age)
        self.color = color


dog = DogChild("小汪汪", 2, "black")
dog.speak()
dog.eat()

上面的代码DogChild类继承了Dog类,而Dog类继承Animal类,并且你会发现你会发现创建的DogChild的实例可以使用DogChild类中没有声明的speak和eat方法。

多态

多态是面向对象编程中的术语,它用于描述同一操作作用于不同的对象上时,产生不同的结果。在Python中,多态是一种自然而然的现象,因为Python是一种动态类型语言。
简单说就是同一函数可以被不同类型的不同对象调用。

重载多态

重载多态是面向对象编程中的术语,它用于描述同一操作作用于不同类型的参数时,产生不同的结果。在Python中,重载多态是一种自然而然的现象,因为Python是一种动态类型语言。
也就是同一函数有不同的参数。

重写多态

重写多态是面向对象编程中的术语,它用于描述子类重写父类方法的现象。在Python中,重写多态是一种自然而然的现象,因为Python是一种动态类型语言。

实例属性

实例属性是类的属性之一,它是实例的数据成员。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

上面的代码中,name和age是Person类的实例属性。

实例方法

实例方法是类的方法之一,它是实例的函数成员。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {
     self.name} and I am {
     self.age} years old.")

上面的代码中,say_hello是Person类的实例方法。

类属性

类属性是类的属性之一,它是类的数据成员。例如:

class Person:
    count = 0

    def __init__(self, name, age):
        self.name = name
        self.age = age
        Person.count += 1

上面的代码中,count是Person类的类属性。

类方法

类方法是类的方法之一,它是类的函数成员。例如:

class Person:
    count = 0

    def __init__(self, name, age):
        self.name = name
        self.age = age
        Person.count += 1

    @classmethod
    def get_count(cls):
        return cls.count

上面的代码中,get_count是Person类的类方法,需要用@修饰,而@classmethod就代表类方法。

静态方法

静态方法是类的方法之一,它是类的函数成员。它与类和实例无关,因此可以在不创建实例的情况下调用。例如:

class Math:
    @staticmethod
    def add(x, y):
        return x + y

上面的代码中,add是Math类的静态方法。你会发现add函数前面有一个**@staticmethod**,其实就是装饰器的原理。

🆗,文章到此结束,如果觉得对你有帮助,可以给个关注,持续更新中🌹🌹🌹
在这里插入图片描述

相关推荐

  1. Stable Diffusion常用术语

    2024-01-31 21:58:05       10 阅读
  2. MySQL索引:深入理解与案例

    2024-01-31 21:58:05       34 阅读
  3. MySQL临键锁:深入理解与案例

    2024-01-31 21:58:05       41 阅读
  4. 软件造价评估常用术语与缩略语

    2024-01-31 21:58:05       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-31 21:58:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-31 21:58:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-31 21:58:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-31 21:58:05       20 阅读

热门阅读

  1. 5GNR解调分析手持式频谱分析仪

    2024-01-31 21:58:05       34 阅读
  2. Python面向对象

    2024-01-31 21:58:05       45 阅读
  3. QT基础篇(20)QT Quick Controls2新颖界面开发

    2024-01-31 21:58:05       27 阅读
  4. 回想起研发之路

    2024-01-31 21:58:05       33 阅读
  5. Hammerspoon配置

    2024-01-31 21:58:05       30 阅读