python class(类)

本文介绍了Python面向对象编程的基础概念,包括类、对象、实例变量、类变量、方法重写、继承等,并通过示例展示了如何在Python3中创建类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 面向对象技术简介

 

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 实例变量:定义在方法中的变量,只作用于当前实例的类。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,素以Dog也是一个Animal。
  • 实例化:创建一个类的实例,类的具体对象。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。

 

2. python3 类创建

面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

  类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

  对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

#创建类
class Foo():
    def __init__(self, name, age):#构造函数,类实例化时,自动执行
        #初始化实例属性
        self.name = name 
        self,age = age
#根据类Foo创建对象
#自动执行Foo类的__init__方法
obj1 = Foo('change', 18)#将change和18分别封装到obj1/self的name和age属性中
#自动执行Foo类的__init__方法
obj2 = Foo('python', 99)#将python和18分别封装到obj2/self的name和age属性中

 

self 是一个形式参数,当执行 obj1 = Foo('wupeiqi', 18 ) 时,self 等于 obj1 ;当执行 obj2 = Foo('alex', 78 ) 时,self 等于 obj2

 

所以,内容其实被封装到了对象 obj1 和 obj2 中,每个对象中都有 name 和 age 属性,在内存里类似于下图来保存。

当执行 obj2 = Foo('alex', 78 ) 时,self 等于 obj2所以,内容其实被封装到了对象 obj1 和 obj2 中,每个对象中都有 name 和 age 属性,在内存里类似于下图来保存。

参考:https://www.cnblogs.com/chengd/articles/7287528.html

Python 中,(`class`)是面向对象编程的核心概念之一。通过可以创建具有特定属性和方法的对象。的定义使用 `class` 关键字,并且可以通过构造方法、实例方法、继承等方式来实现功能。 ### 的基本定义 Python 使用 `class` 关键字定义一个: ```python class MyClass: def __init__(self, value): self.value = value # 实例属性 def display(self): print(f"The value is {self.value}") ``` 上面代码中,`__init__()` 是的构造方法,在创建对象时自动调用,用于初始化对象的状态[^1]。 ### 的使用 要使用一个,需要先创建它的实例。例如: ```python obj = MyClass(10) obj.display() # 输出: The value is 10 ``` 在的方法定义中,第一个参数必须是 `self`,它表示的实例本身,似于其他语言中的 `this` 关键字[^2]。 ### 继承与方法重写 Python 支持的继承,子可以继承父的属性和方法,并可以对其进行扩展或修改: ```python class ParentClass: def greet(self): print("Hello from Parent") class ChildClass(ParentClass): def greet(self): # 方法重写 print("Hello from Child") ``` 当调用 `greet()` 方法时,子会执行自己的实现: ```python child = ChildClass() child.greet() # 输出: Hello from Child ``` ### 私有属性和私有方法 为了封装数据,Python 允许将属性和方法设置为私有,只能在内部访问。通过在名称前加双下划线 `__` 来实现: ```python class SecureClass: def __init__(self): self.__secret = "hidden" # 私有属性 def __private_method(self): # 私有方法 print("This is private") def access_private(self): self.__private_method() print(self.__secret) ``` 尝试从外部直接访问这些私有成员会引发错误,但可以通过公开方法间接访问。 ### 特殊属性和方法 Python 提供了一些内置的特殊方法,如 `__str__()`、`__repr__()` 等,它们用于自定义对象的行为: ```python class MyData: def __init__(self, x, y): self.x = x self.y = y def __str__(self): return f"MyData({self.x}, {self.y})" ``` 这样在打印对象时就会显示自定义格式: ```python d = MyData(3, 4) print(d) # 输出: MyData(3, 4) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值