Python学习笔记--基础篇5

本文介绍了Python中的面向对象编程基础,包括类的定义、构造器、特殊方法如__str__及运算符重载等内容。

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

Python学习笔记--基础篇5

面向对象编程

class Color(object):

        pass

关键字def用于告诉Python定义了一个新函数,关键字class表明定义了一个新类。(object)这部分内容说的是,类Color是一种对象。

定义类的方法,直接将其放到该类内部即可。

class Color(object):

         def lightness(self):

                  strongest = max(self.red, self.green, self.blue)

                  weakest = min(self.red, self.green, self.blue)

                  return 0.5 * (strongest + weakest) / 255

当python在调用某个对象中的某个方法时,会自动将该对象的引用作为该方法的第一个参数传进去。这条关于self的规则意味着,当你在定义一个方法时,除了实际需要传入的那些参数之外,还必须再多写一个。相反,在调用某个方法时,实际提供的参数要比该方法定义中所需的少一个才行。

构造器

在python中,构造器就是__init__:

class Color(object):

        def __init__(self, r, g, b):

                 self.red = r

                 self.green = g

                 self.blue = b

  名称两边的双下划綫说明该方法对python有特殊的含义,创建新对象的时候,该方法就会被调用。python会自动将对象本身的引用当做第一个参数传给__init__。

特殊方法

__str__和__repr__

>>>purple = Color(128, 0, 128)

>>>print purple

<color.Color object at 0x6b150>

这就是object所定义的从对象到字符串的转换行为。由于object无法知晓从它所派生出来的类是什么,所以只能将该对象在内存中的位置显示出来。如果想要呈现一段更有意义的字符串,有两个特殊方法,即__str__和__repr__。

class Color(object):

          def __init__(self, r, g, b):

                    self.red = r

                    self.green = g

                    self.blue = b


          def __str__(self):

                    return '(%s, %s, %s)' %(self.red, self.green, self.blue)

在使用print时,__str__就会被调用。

>>>purple = Color(128, 0, 120)

>>>print purple

(128, 0, 128)

Python中还有很多特殊方法,Python官网给出了完整的列表。其中有__add__、__sub__和__eq__等,它们分别在用“+”对对象做加法,用“-”对对象做减法、用“==”对对象做比较的时候调用。

>>>purple = Color(128, 0, 128)

>>>white = Color(255, 255, 255)

>>>dark_grey = Color(50, 50, 50)

>>>print purple + dark_grey

Color(178, 50, 178)

>>>print white - dark_grey

Color(205, 205, 205)

>>>print white == Color(255, 255, 255)

True


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值