Day24 面向对象与实例属性

编程范式包括面向过程和面向对象,面向过程适合流水线式、变化少的场景,而面向对象注重高扩展性。类是抽象概念,对象是基于类的具体实例。实例化是创建对象的过程,Python中所有类都继承自object。类和对象通过点运算符访问属性,实例属性优先于类属性。面向对象编程涉及分析、设计、编程、测试和维护等步骤。
摘要由CSDN通过智能技术生成

编程范式即编程的方法论,表示一种编程风格,没有高低之分

  • 面向过程:流水线,一旦完成基本很少改变的场景
  • 函数式
  • 面向对象:高扩展性

类:把一类事物的相同特征和动作整合到一起的就是类,类是一个抽象的概念

对象:就是基于类而创建的一个具体的事物

实例化:由类生产对象的过程称之为实例化,类实例化的结果是一个对象或一个实例

【注!用面向对象语言写程序和一个程序的设计是面向对象的,两者是八竿子打不着的两码事】

类的定义语法

Class 类名:
    '类的文档信息'
    类体

# 实例化
var_name = 类名()

属性

1.数据属性:变量

2.函数属性:通称称之为方法

__dict__:查看属性字典

类和对象均用点来访问自己的属性,本质就去属性字典里查找

python中所有的类都有共同的祖先类:object

__name__

类的名字

__doc__

类的文档字符串

__base__

类的第一个父类

__bases__

类的所有父类构成的元组

__dict__

类的属性

__module__

类定义所在的模块

__class__

类的类型,返回<type 'type'>

实例化的过程实际就是执行__init__的过程,这个函数内部只是为实例本身即self设定了一堆数据,所以实例只有数据属性,给实例绑定属性的方法是通过实例变量,或者通过self变量

直接在class中定义属性,这种属性是类属性,归类所有,但类的所有实例都可以访问到

【实例属性优先级大于类属性】

del 删除类、实例属性

通过点.来调用得到的要么是实例属性,要么是类属性

【不要通过__dict__[]=''的方法修改底层的属性字典】

总结

  • 实例属性属于各个实例所有,互不干扰
  • 类属性归于类所有,所有实例共享一个属性
  • 不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误

【输入、输出不要写到函数中,函数只写逻辑】

面向对象分析➡设计➡编程➡测试➡维护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值