首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第51讲Python学习笔记之类

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

"学而不思则罔": 死记硬背而不思考不理解,就做不到活学活用、融会贯通,即使记忆力再好成绩也不会太好。

“思而不学则殆”:只是善于思考而没有学习的行动,即使逻辑思维能力再强也会因为知识积累的匮乏而限于空想失败。

猫妹觉得,把自己学过的东西记录下来,便是一种思考,很有意思。

什么是面向对象

程序开发分为面向过程开发和面向对象开发。

Python本身是一门面向对象开发语言。

面向对象开发中,最重要的两个概念是类和对象。

举个简单的例子,人是类,每个具体的人是对象。

每个具体的人有属性和方法。

人的属性有:头、手、足等

人的方法有:说话、吃饭、睡觉等

类和对象

类的定义:

class 类名:

  属性名=xxx

  def 方法名(self):

      xxx

使用关键字class定义一个类,类名首字母需要大写。

类一般有属性和方法,属性类似变量,方法类似函数,方法第一个参数是self。

类和实例通过实例化关联起来。

实例化即对象=类()。

可以访问对象的属性和方法,使用对象名.属性名,对象名.方法()。

类是模版,可以实例化不同的对象。

下面三种形式的类定义,实质无区别。

class A:

...

class A():

...

class A(object):

...

构造函数__init__()

构造函数__init__()

构造函数__init__()语法:

class 类名:

  def __init__(self,A,B,C):

      self.A=xxx

      self.B=xxx

      self.C=xxx

构造函数就是一个函数,名称是固定的,在类内部定义。

其第一个参数是self,这个和类的方法是一样的。

在构造函数内部,使用self.xxx接收参数,self指向当前对象。

类属性和实例属性

先看个例子:

其中的title属于类属性,name和color属于实例属性。

在类中定义的属性或方法,就是类属性和类方法。

在构造函数中定义的属性或方法,就是实例属性和实例方法。

访问类属性或类方法,一般通过类名.类属性(类名.类方法)访问,不建议使用实例名.类属性(实例名.类方法)。

当类属性和实例属性同名时,实例属性会覆盖类属性。

在实例方法中可以访问类属性,可以类名.属性名或self.__class__.title

大多数情况,只会用到实例属性,什么时候会用到类属性呢?

举个例子:

类方法和实例方法

Python中,可以使用@classmethod来定义一个类方法。

@classmethod

  def 方法名(cls):

     xxxx

第一个参数是cls,只是一个参数名,可以使用其他,但是建议使用cls。

静态方法

Python中,可以使用@staticmethod来定义一个静态方法。

@staticmethod

  def 方法名():

     xxxx

静态方法不需要强制传入参数。

类和实例都可以调用静态方法,实际开发中,静态方法用得不多。

继承

在Python中,我们可以把这些相同的部分提取成一个父类,然后让这些子类去“继承”父类。

封装、继承、多态是面向对象设计的三大特性。

class 子类名(父类名):

         ……

子类Student继承了父类Human,因此子类Student具有了父类的属性和方法。即这里的类属性type和实例方法walk。

因此子类Student的对象s可以直接使用继承而来的s.type和s.walk。

实战一

定义矩形类,构造方法初始化实例属性长宽,定义两个实例方法求周长和面积。

通过类实例化对象,求周长和面积。

实战二

类方法使用笔记:

好了,我们今天就学到这里吧!

我是猫妹,咱们下次见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230326A00PWH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券