当前位置:   article > 正文

Python 学习笔记(五)—— 包、类、方法_python包有什么用

python包有什么用

目录

一、包

1.1 包的概念

1.2 安装Python包的方法

1.2.1  使用pip安装包

1.2.2  使用Anaconda安装包

1.2.3  包的版本号

1.2.4  包的卸载

二、面向对象

2.1  面向对象的基本概念

2.2  类与对象

2.2.1  创建类

2.2.2  创建实例对象

2.3  方法

2.3.1  类的方法

2.3.2  构造方法

2.3.3  析构方法

2.3.4  静态方法与类方法



一、包

1.1 包的概念

Python包是指由多个模块或子包组成的一个目录结构,用于封装和组织相关的功能。通过使用包,可以更好地组织和管理代码,使得代码更易于维护和扩展。

在Python中,包对应一个目录,该目录下通常包含一个 init.py 文件,用于指示该目录为一个包。同时,该目录下还可以包含多个子包或模块文件。

包的好处:

  1. 提高代码的组织性和可读性,更好地管理代码。

  2. 避免命名冲突,有助于代码的复用和维护。

  3. 方便使用模块别名和相对导入等功能。

Python中有很多内置的标准库和第三方包,比如 NumPy、Pandas、Matplotlib 等,这些包已经被广泛应用于数据分析、科学计算、图形绘制等领域。同时,开发者也可以根据自己的需求开发和维护自己的包,以方便地完成各种任务。

1.2 安装Python包的方法

Python是一种解释型的高级编程语言,广泛应用于Web开发、数据分析、科学计算等领域。在Python中,有许多强大的第三方包可供使用,如NumPy、Pandas、Matplotlib等,在使用这些包之前,需要先安装它们。

1.2.1  使用pip安装包

pip是Python的包管理器之一,可以快速方便地安装和升级Python包。使用以下命令来安装一个包:

pip install package_name        //package_name  包的名字

例如,要安装numpy包,可以使用以下命令:

pip install numpy
1.2.2  使用Anaconda安装包

Anaconda(会专栏讲Anaconda)是一个Python的开发环境,自带许多常用的科学计算包。Anaconda可以在Windows、Linux和MacOS上运行,并提供了一个可视化的包管理器,在其中可以方便地安装和升级各种Python包。

例如,要安装numpy包,可以使用以下命令:

conda install numpy
1.2.3  包的版本号

在安装包时,可以指定要安装的版本号,例如:

pip install package_name==1.0

如果没有指定版本号,则会安装最新版本。

1.2.4  包的卸载

如果需要卸载已安装的Python包,可以使用以下命令:

pip uninstall package_name       //package_name  包的名字

例如,要卸载numpy包,可以使用以下命令:

pip uninstall numpy

二、面向对象

面向对象 (Object-Oriented) 是一种计算机编程方法,它将现实世界的对象抽象为软件中的类,通过封装、继承、抽象和多态等特性来描述对象之间的关系和行为。

通过面向对象的编程方式,可以提高软件的可维护性、可扩展性和可重用性,同时也更符合现实世界的抽象和模拟。现在的许多流行编程语言比如Java、Python、C++、C#等都支持面向对象编程

2.1  面向对象的基本概念

面向对象编程是一种编程范式,它将数据和操作数据的方法封装在一起,形成相互依赖的对象,并通过对象之间的交互来实现程序功能。下面是面向对象编程中的一些基本概念:

  1. 类(Class):类是一种抽象的数据类型,它封装了一组数据和相关的操作。类定义了一种对象的属性和行为,是实现封装、继承和多态等面向对象编程概念的基础。

  2. 对象(Object):对象是类的一个实例,具有类中定义的属性和方法。从类中创建对象的过程被称为实例化。对象具有类定义的属性和行为,可以通过方法调用来修改其状态。

  3. 封装(Encapsulation):封装指的是将数据和方法封装到一个对象中,隐藏了对象的内部实现细节,只对外提供公共接口。

  4. 继承(Inheritance):继承指的是一种对象间的关系,一个子类可以继承父类的属性和方法,并可以添加自己的属性和方法。

  5. 多态(Polymorphism):多态指的是同一种方法对不同的对象可以产生不同的结果,即一个接口,多种实现。

  6. 抽象(Abstraction):抽象指的是对具体事物的概括和简化,把重点放在需要处理的方面,忽略其他方面的细节。在面向对象编程中,抽象可以通过接口或抽象类来实现。

2.2  类与对象

通过类和对象的概念,我们可以用更抽象、更通用的方式来描述和处理问题,提高代码的复用性和可读性。

2.2.1  创建类

在Python中,可以使用关键字class来创建类。例如,下面是一个简单的类的示例:

  1. class Person:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def say_hello(self):
  6. print(f"Hello, my name is {self.name} and I am {self.age} years old.")
'
运行

该类的名称为Person,它有两个属性nameage,以及一个方法say_hello()。类中的__init__()方法是类的构造函数,用于初始化类的属性。self参数表示类的实例本身。在say_hello()方法中,我们使用实例属性来输出一条简单的问候语。

使用该类创建一个实例的示例如下:

  1. person = Person("John", 30)
  2. person.say_hello()
  3. # 输出: Hello, my name is John and I am 30 years old.

在这个例子中,我们使用类Person创建一个名为person的实例,并调用它的say_hello()方法。

2.2.2  创建实例对象

在 Python 中,我们可以使用以下语法来创建实例对象:

  1. class ClassName:
  2. def __init__(self, arg1, arg2):
  3. self.arg1 = arg1
  4. self.arg2 = arg2
  5. # 创建实例对象
  6. obj = ClassName(arg1_value, arg2_value)

在上面的代码中,我们首先定义了一个类 ClassName,并在其中定义了构造函数 __init__()。构造函数是在创建对象时自动调用的函数,用于初始化对象的属性。

然后,我们通过使用类的名称和参数调用构造函数来创建一个实例对象 obj。在这里,我们向构造函数传递了两个参数 arg1_valuearg2_value,然后使用这些参数初始化对象的属性 arg1arg2

现在,我们可以使用对象 obj 来访问类中定义的属性和方法。

以下是我自己的笔记

  1. # 面向对象是一种抽象化的编程思想.
  2. # 面向对象就是将编程当成是⼀个事物,面向对象编程就是设置事物能够做什么事.
  3. # 类:类是对⼀系列具有相同特征和行为的事物的统称,是⼀个抽象的概念,不是真实存在的事物.
  4. # 属性:类的特征
  5. # 方法:类可以实现的行为,即类里面的函数.
  6. # 对象:对象是类创建出来的真实存在的事物 (先有类,后有对象)
  7. class Washer(): # class 类名(): (定义类)
  8. i = "happy" # 类的属性
  9. def wash(self): # 创建实例函数,实例函数只能用对象访问
  10. print("我会洗衣服")
  11. def print_info(self): # 创建实例函数 def 方法名(self)
  12. print(f'haier 洗衣机的宽度: {self.width}cm')
  13. print(f'haier 洗衣机的高度: {self.height}cm')
  14. # 类外获取对象属性: 对象名.属性名
  15. # 类外添加对象属性: 对象名.属性名 = "值"
  16. # 类内获取对象属性: self.属性名
  17. # 以上是定义类的代码
  18. washer1 = Washer() # 将类实例化,对象
  19. washer1.width = 100 # 添加实例属性
  20. washer1.height = 200
  21. washer1.wash() # 调用方法
  22. washer1.print_info() # 调用方法
'
运行

2.3  方法

2.3.1  类的方法

Python中的类可以包含方法,方法是与类相关联的函数。类中的方法可以访问类中的数据属性和其他方法,并且可以在类的实例上调用。

以下是定义和使用Python类方法的示例:

  1. class MyClass:
  2. def __init__(self, name):
  3. self.name = name
  4. def say_hello(self):
  5. print("Hello, my name is", self.name)
  6. my_obj = MyClass("John")
  7. my_obj.say_hello()
'
运行

在这个示例中,我们定义了一个名为MyClass的类,并将其实例化为my_obj。该类具有两个方法:一个构造函数__init__和一个名为say_hello的实例方法。__init__方法负责初始化类的实例,而say_hello方法将打印实例的名称。

我们创建一个名为my_obj的MyClass实例,然后调用say_hello方法来输出"Hello, my name is John"。

2.3.2  构造方法

Python中的构造方法是指类中的特殊方法,用于创建和初始化一个对象。构造方法的名称是__init__(),它在创建对象时自动调用。构造方法可以通过传递参数来初始化对象的属性。

以下是一个简单的示例:

  1. class Person:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. def display(self):
  6. print("Name:", self.name, "Age:", self.age)
  7. p1 = Person("Alice", 25)
  8. p1.display() # 输出:Name: Alice Age: 25
'
运行

在上面的示例中,Person类的构造方法接受两个参数nameage,并将它们保存在对象的属性中。然后,我们创建了一个Person对象p1并调用它的display()方法来显示其属性。

2.3.3  析构方法

在Python中,析构方法是一种特殊的方法,它在实例对象被销毁时自动被调用。析构方法被称为 del(),它的作用是释放实例对象占用的资源,比如关闭文件、释放内存等等。

Python中的垃圾回收机制会自动调用析构方法,但不是立即调用,而是在对象被删除时才会调用。可以使用del语句显式地删除一个实例对象,并触发析构方法的执行。

下面是一个简单的示例,展示如何定义和使用析构方法:

  1. class MyClass:
  2. def __init__(self, name):
  3. self.name = name
  4. print('Creating instance', self.name)
  5. def __del__(self):
  6. print('Destroying instance', self.name)
  7. # 创建实例对象
  8. obj1 = MyClass('obj1')
  9. # 删除实例对象
  10. del obj1
  11. # 输出:
  12. # Creating instance obj1
  13. # Destroying instance obj1
'
运行

当我们执行del obj1时,Python会自动调用析构方法__del__(),释放实例对象占用的资源。

2.3.4  静态方法与类方法

Python中的静态方法和类方法是对类中普通方法的扩展。它们都是通过在普通方法前面加上修饰符@staticmethod@classmethod来实现的。

静态方法(staticmethod): 静态方法定义在类中,但是没有访问类变量或实例变量,因此在静态方法中无法访问self或cls。通常情况下,静态方法被用作工具函数,它们不需要访问类定义中的属性或方法,因此不需要实例化类或传递类对象。

类方法(classmethod): 类方法也定义在类中,但是第一个参数必须是cls。cls参数指向当前类对象,通过它可以访问类的属性和方法。类方法常用于创建类变量、类方法。

下面是一个简单的例子,展示如何定义和使用静态方法和类方法:

  1. class MyClass:
  2. class_var = 10
  3. def __init__(self, inst_var):
  4. self.inst_var = inst_var
  5. @staticmethod
  6. def my_static_method(arg1, arg2):
  7. print('Static method called')
  8. return arg1 + arg2
  9. @classmethod
  10. def my_class_method(cls, arg):
  11. print('Class method called')
  12. return cls.class_var + arg
  13. def my_method(self, arg):
  14. print('Instance method called')
  15. return self.inst_var + arg
  16. # 静态方法调用
  17. print(MyClass.my_static_method(1, 2))
  18. # 类方法调用
  19. print(MyClass.my_class_method(5))
  20. # 实例方法调用
  21. obj = MyClass(20)
  22. print(obj.my_method(30))
  23. # 输出:
  24. # Static method called
  25. # 3
  26. # Class method called
  27. # 15
  28. # Instance method called
  29. # 50
'
运行

上面的代码定义了一个MyClass类,其中包含了一个静态方法和一个类方法。我们通过类名直接调用静态方法和类方法,而通过实例调用普通方法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/991438
推荐阅读
相关标签
  

闽ICP备14008679号