一、知识点
1. 类的定义
在 Python 中,用class关键字定义类,格式为:
class 类名:
# 类的属性、方法
例如:class Circle: pass(pass是占位语句,暂不实现类内容)。
2. pass 占位语句
当类 / 方法暂时不需要写具体逻辑时,用pass占位,避免语法错误。示例:
class EmptyClass:
pass # 暂时空实现
3. 类的初始化方法(init)
-
是类的 "构造方法",创建实例时自动调用,用于初始化实例属性。
-
第一个参数必须是
self(代表实例本身)。示例:class Person:
def init(self, name):
self.name = name # 给实例绑定name属性p = Person("小明") # 创建实例时,__init__自动执行
print(p.name) # 输出:小明
4. 类的普通方法
-
在类中定义的函数,需通过实例手动调用,用于实现类的功能。
-
第一个参数也必须是
self。示例:class Person:
def init(self, name):
self.name = name
def say_hello(self): # 普通方法
print(f"你好,我是{self.name}")p = Person("小红")
p.say_hello() # 手动调用,输出:你好,我是小红
5. __init__与普通方法的核心区别
- 调用时机:
__init__是 "创建实例自动调",普通方法是 "手动调"。 - 用途:
__init__负责 "初始化属性",普通方法负责 "实现行为逻辑"。 - 返回值:
__init__必须返回None,普通方法可返回任意值。

二、作业
题目 1:定义圆(Circle)类
要求:
- 包含属性:半径
radius。 - 包含方法:
calculate_area():计算圆的面积(公式:πr2)。calculate_circumference():计算圆的周长(公式:2πr)。
- 初始化时需传入半径,默认值为 1。
示例运行代码:
# 示例运行
circle = Circle(5)
print(f"半径: {circle.radius}") # 输出: 半径: 5
print(f"面积: {circle.calculate_area()}") # 输出: 面积: 78.54(保留两位小数)
print(f"周长: {circle.calculate_circumference()}") # 输出: 周长: 31.42(保留两位小数)
python
import math
class Circle:
def __init__(self, radius=1):
self.radius = radius
def calculate_area(self):
area = math.pi * (self.radius ** 2)
return round(area, 2)
def calculate_circumference(self):
circumference = 2 * math.pi * self.radius
return round(circumference, 2)
circle = Circle(5)
print(f"半径: {circle.radius}")
print(f"面积: {circle.calculate_area()}")
print(f"周长: {circle.calculate_circumference()}")
html
半径: 5
面积: 78.54
周长: 31.42
题目 2:定义长方形(Rectangle)类
要求:
- 包含属性:长
length、宽width。 - 包含方法:
calculate_area():计算面积(公式:长 × 宽)。calculate_perimeter():计算周长(公式:长宽)。is_square():判断是否为正方形(长 == 宽)。
- 初始化时需传入长和宽,默认值均为 1。
示例运行代码:
rect = Rectangle(4, 6)
print(f"长: {rect.length}, 宽: {rect.width}") # 输出: 长: 4, 宽: 6
print(f"面积: {rect.calculate_area()}") # 输出: 面积: 24
print(f"周长: {rect.calculate_perimeter()}") # 输出: 周长: 20
print(f"是否为正方形: {rect.is_square()}") # 输出: 是否为正方形: False
square = Rectangle(5, 5)
print(f"是否为正方形: {square.is_square()}") # 输出: 是否为正方形: True
python
class Rectangle:
def __init__(self, length=1, width=1):
self.length = length
self.width = width
def calculate_area(self):
area = self.length * self.width
return area
def calculate_perimeter(self):
perimeter = 2 * (self.length + self.width)
return perimeter
def is_square(self):
return self.length == self.width
rect = Rectangle(4, 6)
print(f"长: {rect.length}, 宽: {rect.width}") # 输出: 长: 4, 宽: 6
print(f"面积: {rect.calculate_area()}") # 输出: 面积: 24
print(f"周长: {rect.calculate_perimeter()}") # 输出: 周长: 20
print(f"是否为正方形: {rect.is_square()}") # 输出: 是否为正方形: False
square = Rectangle(5, 5)
print(f"是否为正方形: {square.is_square()}")
html
长: 4, 宽: 6
面积: 24
周长: 20
是否为正方形: False
是否为正方形: True
题目 3:图形工厂
要求 :创建工厂函数 create_shape(shape_type, *args),根据类型创建不同图形对象:
shape_type="circle":创建圆(参数:半径)。shape_type="rectangle":创建长方形(参数:长、宽)。
示例运行代码:
shape1 = create_shape("circle", 5)
print(shape1.calculate_circumference()) # 输出: 31.42
shape2 = create_shape("rectangle", 3, 4)
print(shape2.is_square()) # 输出: False
python
def create_shape(shape_type, *args):
if shape_type == "circle":
return Circle(*args)
elif shape_type == "rectangle":
return Rectangle(*args)
else:
raise ValueError("不支持的图形类型")
shape1 = create_shape("circle", 5)
print(shape1.calculate_circumference()) # 输出: 31.42
shape2 = create_shape("rectangle", 3, 4)
print(shape2.is_square()) # 输出: False
html
31.42
False
勇闯python的第31天@浙大疏锦行