类
- 类(Class)是一种定义对象的蓝图,它描述了一组具有相同属性和方法的对象
class Dog():
"""模拟小狗的简单尝试"""
def __init__(self, name, age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(f"{self.name.title()} is now sitting.")
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(f"{self.name.title()} rolled over!")
class Restaurant():
def __init__(self):
self.restaurant_name = 'Rose'
self.cuisine_type = 'snack'
self.number_served = '0'
def describe_restaurant(self):
print(self.restaurant_name,self.cuisine_type,self.number_served)
def open_restaurant(self):
print('The restaurant is open!')
def set_number_serverd(self,number = 0):
self.number_served = number
def increment_number_serverd(self):
self.number_served += 10
- 类定义通常包括以下几个部分:
- 类名:类名首字母大写,遵循驼峰命名法,表明这是一个类。
- 文档字符串:在类定义下方的多行字符串,描述类的功能和用途。
- 初始化方法(init):构造函数,当创建类的实例时自动调用,用于初始化实例的属性。
- 属性:类中定义的变量,可以是实例属性(通过self访问,每个实例独立)或类属性(直接在类中定义,所有实例共享)。
- 方法:类中的函数,至少有一个参数self,用于访问实例的属性或执行特定操作
实例化
- 实例化(Instantiation)则是根据类创建具体对象的过程
my_dog = Dog('Buddy', 3) # 创建一只名为Buddy,年龄为3岁的小狗实例
//调用方法
my_dog.sit() # 命令Buddy坐下
my_dog.roll_over() # 命令Buddy打滚
// 创建多个实例
your_dog = Dog('Max', 5)
print(f"\nYour dog's name is {your_dog.name.title()}, and it's {your_dog.age} years old.")
your_dog.sit()
继承
class ChildClass(ParentClass):
"""子类定义。"""
pass
class IceCreamStand(Restaurant):
def __init__(self):
super().__init__()
self.flavors = ['chocolates','fruits','margarine']
def show_icecream(self):
for i in self.flavors:
print(i)
ice = IceCreamStand()
ice.show_icecream()
模块
- 模块是Python程序的一个文件,其中包含定义和语句法(变量、函数、类、其他定义等)
- 为何使用模块?
- 重用性:编写一次,多处使用多次。模块允许你编写通用功能并在多个项目中使用。
- 组织:模块帮助组织大型项目,使得代码易于管理和导航。
- 命名空间:模块提供了独立的命名空间,减少全局变量冲突。
- 标准库:Python标准库本身就是一系列模块,提供了丰富的功能,从网络编程到文本处理,无所不包。
- 如何使用模块?
- 导入:使用import语句法导入模块,如import math。这允许你使用模块中的所有公开的名称,如math.sqrt()。
- 别名导入:from语句法可以导入模块中的特定部分,如from math import sqrt,之后直接使用sqrt()。
- as:重命名别名,如import math as m,之后使用m.sqrt()。
包
- 包是模块的目录,它包含了一个__init__.py文件(可以为空),这使得Python将其识别为包
- 为何使用包?
- 组织:特别是大型项目或库,包帮助组织成逻辑单元。
- 命名空间:包名作为前缀,避免模块名冲突。
- 重用性:包可以跨项目重用,尤其是当你将公共功能封装为库时
- 如何创建和使用包?
- 目录结构:创建一个包含__init__.py的目录,此目录即为包。
- 导入:如同模块,使用import或from导入包或包内的模块,如import mypackage.module或from mypackage import module。
- 子包:包内可以嵌套子包,形成树状结构,通过点记法访问,如from mypackage.subpackage import submodule
my_project/
│
├── my_package/
│ ├── __init__.py
│ └── my_module.py
└── main.py
def greet():
print("Hello from my module!")
import my_package
my_package.greet() # Hello from my module!