python基础 面向对象

1173-杨同学

发表文章数:29

首页 » Python » 正文

nonlocal

nonlocal 用来声明外层的局部变量
global 用来声明全局变量
【操作】使用nonlocal 声明外层局部变量

LEGB规则

local(函数或者类的方法内部)–>enclosed(嵌套函数,一个函数包裹另一个函数,闭包)–>global (模块中的全局变量)–>Built in (python 为自己保留的特殊名称)

面向对象

面向对象和面向过程

面向过程编程更加关注的是“程序的逻辑流程”,是一种执行者思维,适合小规模的程序。 思考–怎么按步骤实现?
面向对象编程更加关注的是“软件中对象之间的关系”,是一种设计者的思维,适合编写大规模的程序。 思考–怎么设计这个事物?
解决简单问题–使用面向过程
解决复杂问题–宏观上使用面向对象把握,微观处理上仍然是面向过程。

我们通过类定义数据类型的属性(数据)和方法(行为),也就是说,‘类将行为和状态打包在一起’
对象是类的具体实体,一般称为"类的实例“。从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属性值(不共享状态)。–方法代码是共享的,属性数据不共享。

构造函数_init_()

初始化创建好的对象,–给实例属性赋值
1.名称固定,必须为_init_()
2.第一个参数固定,必须为:self。self指的是刚刚创建好的实例对象,
3.构造函数通常用来初始化实例对象的实例属性
4.通过“类名(参数列表)”来调用构造函数。调用后,将创建好的对象返回给相应的变量。

实例属性 实例方法

实例方法是从属于实例对象的方法。
函数和方法的区别:
方法调用时,通过对象来调用。方法从属于特定实例对象,普通函数没有这个特点。
直观上看,方法定义需要传递self,函数不需要。
实例对象的方法调用本质:
a.Student()
a.say_score()————Student.say_score(a)

类对象

class Student://解释器执行class语句时,会创建一个类对象
type–模具类—–Student学生类—学生实例

类属性

类属性从属于“类对象”的属性,也称为“类变量”。由于,类属性从属于类对象,可以被所有实例对象共享。`
python基础 面向对象

类方法

类方法从属于“类对象”的方法 通过装饰器@classmethod来定义
1.@classmethod必须位于方法上面一行
2.第一个cls必须有;cls指的就是"类对象"本身;
3.调用类方法格式:“类名.类方法名(参数列表)”。参数列表中,不需要也不能给cls传值。
4.类方法中访问实例属性和实例方法会导致错误。
5.子类继承父类方法时,传入cls是子类对象,而非父类对象

静态方法

与“类对象”无关的方法。
1.@staticmethod必须位于方法上面一行
2.调用静态方法格式:“类名.静态方法名(参数列表)”。
3.类方法中访问实例属性和实例方法会导致错误。//实例对象不见得有

_del_方法(析构函数)和垃圾回收机制

python实现自动的垃圾回收,当对象没有被引用时(引用计数为0),由垃圾回收器调用_del_方法
我们也可以通过del语句删除对象,从而保证调用_del_方法。
系统会自动提供_del_方法,一般不需要自定义析构方法。

_call_方法和可调用对象

定义了_call_方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用。
aa()
obj()—>call()

未经允许不得转载:作者:1173-杨同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《python基础 面向对象》 发布于2020-07-09

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录