python中的面向对象OOP编程

1. 类的基本定义

使用 class 关键字定义类,类名通常采用驼峰命名法(首字母大写),例如 class Person:。如果未显式继承其他类,默认基类为 object

class Person:
    pass

2. 构造函数 __init__

  • 作用:初始化实例属性,在创建对象时自动调用
  • 参数:
    • self:固定为第一个参数,表示当前实例对象
    • 其他参数:用于接收实例化时传入的值(如 nameage)。
class Person:
    def __init__(self, name, age):
        self.name = name  # 实例属性,通过self.属性名定义[[14]]
        self.age = age

3. 类属性与实例属性

  • 类属性:直接在类中定义,所有实例共享
  class Person:
      species = "人类"  # 类属性
      def __init__(self, name):
          self.name = name  # 实例属性
  • 实例属性:通过 self.属性名 在 __init__ 中定义,每个实例独立

4. 类方法

  • 实例方法:第一个参数必须是 self,用于操作实例属性
  class Person:
      def say_hello(self):
          print(f"我是{self.name}")  # 通过self访问实例属性[[5]]
  • 静态方法:使用 @staticmethod 装饰器,无需 self 参数,与实例无关
  class Calculator:
      @staticmethod
      def add(a, b):
          return a + b
 

5. 实例化与参数传递

  • 实例化:通过类名加括号创建对象,参数需与 __init__ 方法匹配(不包括 self
  p = Person("张三", 20)  # 传入name和age参数[[6]]
  • 访问属性/方法:使用点符号 .,例如 p.name  或 p.say_hello()

6. 其他重要概念

  • 私有属性:以双下划线 __ 开头的属性为私有,外部无法直接访问(如 __secret
  • 继承:通过在类名后括号内指定父类实现(如 class Student(Person):

完整示例

class Student(object):  # 继承自object类[[12, 15]]
    school = "第一中学"  # 类属性[[7]]

    def __init__(self, name, score):  # 构造函数[[6, 11]]
        self.name = name  # 实例属性初始化[[14]]
        self.score = score

    def get_grade(self):  # 实例方法[[5]]
        if self.score >= 90:
            return "A"
        else:
            return "B"


# 类定义结束,下方留两个空行,不然实例化代码下会出现下划线
# 实例化 s = Student("李四", 85) print(s.get_grade()) # 输出: B[[12]] 

 

总结

  • 类定义:class 类名:,可指定基类
  • 构造函数:__init__(self, ...) 初始化实例属性
  • 方法:实例方法需以 self 为第一个参数
  • 属性:类属性共享,实例属性独立
  • 实例化:通过类名传递参数,自动调用 __init__
posted @   Jaoany  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示