python基础学习之类
面向对象和面向过程
面向过程:以吃饭为例,即为 煮饭、洗菜、洗碗、切菜、炒菜、出锅、吃饭
面向对象:目标对象做完,直接吃
疑问点:1、面向对象就是把过程用函数封装起来,随时调用?;2、面向过程就是每次都把逻辑程序再走一遍?【初次接触,仅了解,上述疑问有待考证】
类
如果定义一个类
class 类名(首字母大写):
代码块(类属性定义)
举个栗子:
class MyFruit :
name = '疏楼龙宿'
age = 31
这就是一个类调用类
第一种方法是:类名.属性,即MyFruit.name,需要print;
第二种方法是:
实例化
f = MyFruit()
f.name
f.age 同样需要print
属性概念和私有属性
类中的定义变量即为属性,该例子中的name、age即为属性
私有属性是在变量名前面有下划线的(分一个下划线和两个下划线)
class Person:
name = '疏楼龙宿'
_age = 31
__money = 10000区别:
print(Person.name) #普通属性
print(Person._age) #前面有一个下划线,可以直接调用,和普通属性区别不大
print(Person._Person__money) #私有属性加强版,前面两个下划线,需要单下划线加类名加私有属性来使用方法
即封装在类中的函数
举个栗子:
class Student:
name = 'xxxx'
def study(self):
print('%s真帅'%(self.name))该类中的函数即是称作方法,最后是print还是return没有区别
方法的调用
通过实例化来调用
a = Student()
a.study()关于方法中的self参数
谁调用了该方法,这个self就是哪个值self.name即这个值就是name的值,如果全局变量没有,就去类中寻找默认值(局部变量)【与函数的相反】
举个栗子:
longshou = Student()
longshou.name = '疏楼龙宿'
longshou.study()self所在的study函数被longshou调用,那么'self'就是'longshou',可见上述方法中的‘self.name’即为 ‘longshou.name’,全局变量中又有定义longshou.name = '疏楼龙宿',所以,按照格式化的规则传入该值
魔法方法__init__(双下划线)
意思是初始化,其作用其实是赋值,即在类下面定义一个魔法方法,然后如果在实例化的同时,类的()被传入了值,就会自动运行__init__方法处理,然后运行其他方法得出结果
举个栗子:
class Student:
name = 'xxxx'
def __init__(self,name,age):
self.name = name
self.age = age
def study(self):
print('%s已经%d岁了,但仍然是人间至帅'%(self.name,self.age))
#=============假装自己是封装线?=================
s = Student('疏楼龙宿',31)
s.study()解释该代码块:
在实例化该类的同时,传入“疏楼龙宿”和31两个值,符合触发__init__方法的条件,__init__方法开始运行,处理这两个参数,分别赋值,然后运行下一步的study方法,并提供刚刚赋值的结果。可以视作__init__的作用就是定义class的属性
析构
li = [1,2,3,4,5]
del li
print(li) #报错
pop、clear remove等是删除元素,del是删除列表指向,即内存中列表本身,或者说是取消列表定义
del其实就是调取的‘ __del__’魔法方法
class MyFriend:
pass
longshou = MyFriend()
print(longshou) #输出是个内存地址
del longshou
print(longshou) #报错
class MyFriend:
def __del__(self):
print("人间至帅-疏楼龙宿")
longshou = MyFriend() #实例化
print(111111)
del longshou #删除该实例化的时候,会触发__del__方法,输出“人间至帅-疏楼龙宿”
print(22222)
当某个类中有__del__方法的时候,在py文件执行结束后,会自动触发。
del是将该内存解放掉
python基础学习之类的更多相关文章
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Python基础学习一
Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...
- Python基础学习五
Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...
- Python基础学习四
Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...
随机推荐
- DNS域名解析10步
第一步:浏览器缓存中检查有没有对应这个域名的解析过的IP地址,如有,结束 第二步:如浏览器缓存没有查到,则访问本地操作系统,window下通过C:\Windows\System32\drivers\e ...
- hautoj 1268 小天使改名
1268: 小天使改名 时间限制: 2 秒 内存限制: 128 MB提交: 437 解决: 123提交 状态 题目描述 小天使的b站帐号被大家发现啦.于是小天使决定改名,将他原有ID中的两个不同位 ...
- SCSS 复用 class 样式
SCSS 复用 class 样式 @mixin & @include 复用的变量名称,不可以是 .class 开头️ css-varibale-name .css-class-name Mix ...
- 如何使用 js 检测控制台被用户打开了
如何使用 js 检测控制台被用户打开了 js solutions 监听 F12 事件 监听键盘快捷键组合 Ctrl + Shift + I Option + Command + I Object.to ...
- js 创建XML
// 创建xml数据 let doc = document.implementation.createDocument('', 'root', null); // 创建一个文档 let root =d ...
- rxjs 常用的subject
api列表 Subject Subject是可观察的一种特殊类型,它允许将值多播到许多观察者 import {Subject} from 'rxjs'; const l = console.log; ...
- BGV等 DeFi产品暴涨背后隐藏着什么?
比特币突破两万七千美金,在此创造了历史.在比特币一路飙升的背后,到底是谁注入了"强心针".笔者认为今年以来推动BTC长期上涨的主要动力主要包括四个:经济形势恶化.央行大量放水(主要 ...
- 一些小Tip
导语 个人感悟,持续更新中... 正文 无论NIO还是AIO,都没有在数据传输过程(tcp/udp)作革命性的创新.他们在传输过程的效率和传统BIO是一样的,还是会产生阻塞(网络延迟,Socket缓冲 ...
- JPEG解码——(4)霍夫曼解码
本篇是该系列的第四篇,主要介绍霍夫曼解码相关内容. 承接上篇,文件头解析完毕后,就进入了编码数据区域,即SOS的tag后的区域,也是图片数据量的大头所在. 1. 解码过程规则描述 a)从此颜色分量单元 ...
- Javascript中的事件冒泡与捕获
事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数,useCapture:是否使用事件捕获,觉得有点模糊 Js事件流 页面的哪一部 ...