面向对象基础

python中一切皆为对象

例如,python中的基础数据类型就是类,str是类,'abc'就是str的对象

1.类

定义:类是具有相同属性和方法的一类事物

类名的首字母一般大写

1.1类属性

在类中,方法外定义的属性就叫做类属性,类属性属于类,由所有类的对象共享

在使用类属性时,一般都通过类名.类属性名来使用.

1.2方法

  • 函数在类中定义,由类的对象调用时就叫做方法
  • 方法的第一个参数都为self,代表调用对象的内存地址(这个参数可以不叫self,但约定俗成,都叫self)
  • 但是在用对象调用类中方法时,并不用填这个参数,会将对象的地址自动作为第一个参数传入
  • 只有通过类名调用类中方法时,需要将对象作为第一个参数传入

1.3类的实例化

由类创建对象的过程叫做实例化.通过类名()来进行实例化

类的实例化过程:

  1. 创建一块属于对象的内存空间
  2. 把这块内存空间的内存地址和参数传给__init__(初始化方法)
  3. 执行__init__方法
  4. 返回对象的内存地址,赋给变量

如果类中没有__init__方法,会自动调用object类中的__init__方法

1.4__dict__

通过类名.__dict__可以获得类中的所有属性和方法组成的字典,但是不能通过修改字典来修改类中的属性和方法

2.对象

定义:对象就是类的实例化

对象也叫实例,两者完全相同,是一类事物

2.1类指针

在对象的内存空间中,会有一个类指针指向类,如果对象中没有指定的属性/方法,就会到类中寻找,调用

类指针是单向的,类并不能使用对象中的对象属性

2.2对象属性

对象属性属于对象,一般在类中表示为self.属性名

2.3__dict__

对象名.__dict__可以获得对象所有对象属性组成的字典,与类不同,可以通过修改__dict__来修改对象的属性

2.4组合

一个对象是另一个对象的属性,这种现象就叫做组合.

class Cls1(object):pass
class Cls2(object):pass
c1 = Cls1()
c2 = Cls2()
c1.obj = c2

这种现象就叫做组合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值