python中面向对象的类,方法,实例

本文介绍Python中的面向对象编程,包括类、实例和方法的概念。详细解释了如何定义类与实例,以及如何在类中定义方法。同时介绍了面向对象编程的一些高级特性。
部署运行你感兴趣的模型镜像

python中面向对象的类,方法,实例

编程入门学习中经常看到面向对象的类,方法,实例的概念。

类即种类,也就是事先定义的特征模版,用于创建一些具有相同特征的对象。

python中的类使用如下语句定义:

class Student(object):
  pass

每个类都需要继承一个父类,如果没有父类需要继承默认object类。

实例

实例即通过类创建的具有某些属性的特定对象。

比如通过刚刚的Student类创造实例:

bob = Student()

可以自由地给实例添加属性:

bob.name = 'boby'

方法

刚刚给实例绑定属性也可以在类中完成。 类中定义的函数称为方法。

其中有一种特殊方法 __init__可以给类绑定默认必须属性。

class Student(object):
  def __init__(self,name,score):
    self.name = name
    self.score = score

在使用该类定义实例时就必须传入这些参数:

bob = Student('boby',60)

注意到__init__方法第一个参数永远都是self,代表定义的实例本身。

除了特殊方法,类中也可以定义其他普通方法。如定义输出方法:

class Student(object):
  def __init__(self,name,score):
    self.name = name
    self.score = score

  def print_name_score(self):
    print(self.name,self.score)

类中的方法第一个参数一定是self,并且调用时无需传入该参数。

此时定义一个实例则该实例拥有print_name_score的方法:

bob.print_name_score()

这样外部在使用实例的方法时不用考虑内部实现方式。这就是面向对象编程的一个特点:数据封装。

面向对象高级编程

__slot__

该特殊方法可限制实例可以添加的属性:

class Student(object):
  __slot__ = ('name','age')

bob = Student()

此时bob实例只可以添加name和age方法(属性)。

不过子类在继承父类后并不继承__slot__,如果子类中重新定义__slot__则子类继承父类__slot__及自身定义的__slot__

多重继承:

Python允许一个类继承多个父类:

class dog(animal,pet)

子类可以获得所有父类的方法。

__call__

如果想直接调用实例即可有返回而非调用实例的方法,则需定义一个特殊方法__call__

class Student(object):
  def __init__(self,name):
    self.name = name

  def __call__(self):
    print('My name is %s'%name)

bob = Student('boby')
bob()

类与模块

在导入模块时经常看到两种写法:
import module
from module import mo
其中第一种写法直接import module是将该模块完全载入。第二种写法则只载入模块中的一个对象,这个对象可能是一个类,或者函数。

您可能感兴趣的与本文相关的镜像

Kotaemon

Kotaemon

AI应用

Kotaemon 是由Cinnamon 开发的开源项目,是一个RAG UI页面,主要面向DocQA的终端用户和构建自己RAG pipeline

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值