python - 类和对象

类和对象是面向对象编程中两个重要的概念,类是定义对象的模板,而对象则是类的一个实例。

可以把类比作是蓝图或者模具,它描述了一个对象具有的属性和方法。类定义了对象的结构和行为。在类中,可以定义对象的属性(可以是变量或者数据)和方法(可以是函数或者操作)。

对象是类的一个实例,它通过类实例化而来。可以将对象看作是类的具体实例,每个对象都有独立的属性值,但是共享类的方法和行为。通过创建对象,我们可以使用类中定义的属性和方法。

举个例子来说明,可以将类比作是图纸,而对象则是根据图纸制造出来的一座房子。图纸定义了房子的结构和功能(例如,有几层,有几间卧室等),而每座实际的房子则有自己独立的属性(例如,颜色,面积等)。

通过定义类和创建对象,可以更好地组织和管理代码,使代码更易于复用和维护。同时,类和对象的使用也可以实现面向对象编程的核心概念,如封装、继承和多态。

[root@learning ~]# python3.11 !$
python3.11 class.py
Buddy makes woof!
[root@learning ~]# cat class.py  
class Animal:   #定义一个动物的类
    def __init__(self, name, species):  
        self.name = name     #有名字和种类两个属性
        self.species = species

    def make_sound(self, sound):   有一个方法,是make_sound
        print(f"{self.name} makes {sound}!")

# Create an instance of the Animal class
dog = Animal("Buddy", "Dog")   #实例化一个类,并定义了名字和种类

# Call the make_sound method
dog.make_sound("woof")   #使用类的方法
[root@learning ~]# python3.11 class.py
Buddy makes woof!    #运行结果 
[root@learning ~]# cat classf.py   #定义了一个计算器的类
class Calculator:
    def add(self, num1, num2):  #加功能,与数据格式的定义
        return num1 + num2

    def subtract(self, num1, num2):  #减功能
        return num1 - num2

    def multiply(self, num1, num2):  #乘功能
        return num1 * num2

    def divide(self, num1, num2):   #除法功能
        if num2 == 0:
            return "Error: Cannot divide by zero"
        else:
            return num1 / num2

# Create an instance of the Calculator class
calc = Calculator()   #实例化

# Perform some calculations using the functions of the Calculator class
print("Addition:", calc.add(5, 3))   #使用计算器功能
print("Subtraction:", calc.subtract(10, 4))
print("Multiplication:", calc.multiply(6, 2))
print("Division:", calc.divide(8, 2))
[root@learning ~]# python3.11 classf.py  #运行结果 
Addition: 8
Subtraction: 6
Multiplication: 12
Division: 4.0
[root@learning ~]# cat classs.py   #类的继承与变化的例子
class Animal:   #定义动物类
    def __init__(self, name):   #名字属性
        self.name = name

    def sound(self):   #发声方法
        print("Some generic sound")

class Dog(Animal):     #继承 动物类的 Dog类
    def __init__(self, name):    #继承属性
        super().__init__(name)
 
    def sound(self):   #发声方法的重新定义
        print("Woof") 

class Cat(Animal):    #Cat 类
    def __init__(self, name):
        super().__init__(name)

    def sound(self):
        print("Meow")

# Create instances of the classes
dog = Dog("Buddy")   #实例化
cat = Cat("Whiskers")

# Call the sound method of the instances
dog.sound()  # Output: Woof
cat.sound()  # Output: Meow
[root@learning ~]# python3.11 classs.py    #运行结果 
Woof
Meow

类的封装

  1. 信息隐藏: 封装可以隐藏类的实现细节,只向外部暴露必要的接口,减少了对外部的依赖性,提高了模块间的解耦,增加了代码 的可维护性和可重用性。

  2. 保护数据: 封装可以通过将数据成员设置为私有(private)来保护数据,防止外部直接访问和修改数据,只能通过类提供的接口进行操作,从而有效地控制数据的合法性和一致性。

  3. 增强安全性: 封装可以对类的使用进行限制,通过将类的部分成员设置为私有,只暴露有限的接口,从而防止误操作和非法访问 ,提高了程序的安全性。

  4. 简化调用: 封装可以将复杂的操作封装在类的内部,对外部提供简单易用的接口,减少了外部代码的复杂性,提高了代码的可读 性和可维护性。

  5. 实现抽象数据类型: 封装可以将数据和操作封装成一个完整的抽象数据类型,只暴露抽象的接口,利于代码的组织和管理,提高 了代码的可理解性和可扩展性。

因此,类的封装不仅提供修改的功能,还能提供信息隐藏、数据保护、安全性增强、调用简化和抽象数据类型等多种好处,有助于提高软件的质量和效率。

cat classp.py
class Person:   #写义 Person类
    def __init__(self, name):  #名字 属性
        self.name = name

    def change_name(self, new_name):  #改名的 方法
        self.name = new_name

# Create a new instance of the Person class
p = Person("John")   #实例化

# Print the initial name
print("Initial name:", p.name)  #查看属性

# Change the name using the function
p.change_name("Jack")   #使用改名的方法

# Print the updated name
print("Updated name:", p.name)  

[root@learning ~]# python3.11 !$    #运行结果
python3.11 classp.py
Initial name: John
Updated name: Jack
[root@learning ~]# cat car.py   #一个关于车的类的例子
class Vehicle:   #定义车 类
    def __init__(self, name, max_speed):  #有两个属性
        self.name = name
        self.max_speed = max_speed

    def description(self):  #有一个方法,描述自身
        print(f"The {self.name} has a maximum speed of {self.max_speed} mph.")

class Car(Vehicle):   #小汽车的类
    def __init__(self, name, max_speed, mileage):   #添加了一个属性
        super().__init__(name, max_speed)
        self.mileage = mileage

    def description(self):   #描述也添加了 print语句
        super().description()
        print(f"It also has a mileage of {self.mileage} mpg.")

# Creating an instance of the Car class
toyota_camry = Car("Toyota Camry", 180, 27)  #实例化小汽车
# Calling the description method
toyota_camry.description()  #使用小汽车的 描述功能
[root@learning ~]# python3.11 car.py  #运行结果
The Toyota Camry has a maximum speed of 180 mph.
It also has a mileage of 27 mpg.

你可能感兴趣的:(python,开发语言)