知用网
柔彩主题三 · 更轻盈的阅读体验

Python类定义:从零开始写一个能用的类

发布时间:2026-02-11 02:02:52 阅读:64 次

在写 Python 代码时,你可能已经用过 liststrdatetime 这些型了。它们不是凭空来的——背后都是用 定义出来的。类就像一张设计图,告诉你‘这类东西’长什么样、能干啥。

最简类:先跑起来再说

打开编辑器,敲下这几行:

class Dog:
pass

这就定义了一个叫 Dog 的类。虽然它啥也不干,但已经合法了。你可以试试创建一个实例:

my_dog = Dog()
print(my_dog) # 输出类似 <__main__.Dog object at 0x...>

看到 object at 0x... 就说明对象生成成功了——哪怕它现在是“空心”的。

加点料:属性和方法

真实世界里的狗会叫、有名字、有年龄。我们给类加上这些特征:

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

def bark(self):
print(f"{self.name} 汪汪叫!")

__init__ 是初始化方法,每次创建实例时自动调用;self 指向当前这个对象本身;bark 是普通方法,可以访问实例的属性。

用起来也很直白:

tom = Dog("汤姆", 3)
tom.bark() # 输出:汤姆 汪汪叫!
print(tom.age) # 输出:3

再进一步:让类更像人写的

有时候你想知道一只狗的描述,而不是每次都手动拼字符串。可以加个方法:

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

def bark(self):
print(f"{self.name} 汪汪叫!")

def describe(self):
return f"这是一只叫 {self.name} 的 {self.age} 岁狗狗。"

然后这样用:

lucky = Dog("幸运", 1)
print(lucky.describe()) # 输出:这是一只叫 幸运 的 1 岁狗狗。

类不一定要多复杂,关键是把重复的逻辑、关联的数据打包在一起。比如你写一个爬虫脚本,要反复处理网页标题、链接、发布时间——不如定义一个 NewsItem 类,把提取、清洗、格式化都封装进去,后面维护和复用就轻松多了。

小提醒:别踩这几个坑

self 必须写在每个实例方法的第一个参数位置,漏了会报错;
• 类名一般用大驼峰(PetCat),变量和方法用小写字母加下划线(get_name);
• 不要直接在类体里写 self.xxx = ...,那会变成类属性,所有实例共享——想每个实例独有一份,一定要写在 __init__ 里。