• 面向对象和面向过程

      面向过程:以吃饭为例,即为 煮饭、洗菜、洗碗、切菜、炒菜、出锅、吃饭
      面向对象:目标对象做完,直接吃
      疑问点: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基础学习之类的更多相关文章

  1. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  5. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  6. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  7. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  8. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

  9. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  10. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

随机推荐

  1. Ubuntu Live CD联网修复

    此模式下可以联网修复ubuntu系统下绝大多数问题.进入LIVE CD模式,打开终端执行以下命令: #此处/dev/sda1为ubuntu根分区,工作中根据实际分区情况更改 sudo mount /d ...

  2. H5 Funny Games All In One

    H5 Funny Games All In One H5 游戏 盖楼 游戏 https://iamkun.github.io/tower_game/ https://github.com/iamkun ...

  3. HTML5 image rotate effect

    HTML5 image rotate effect HTML5 实现旋转拨号键盘 简单的html中js实现图片中心旋转 https://download.csdn.net/download/q3168 ...

  4. API protocols All In One

    API protocols All In One SOAP vs. REST vs. JSON-RPC vs. gRPC vs. GraphQL vs. Thrift https://www.mert ...

  5. HANNAH WHITE:从Facebook谈坚持

    HANNAH WHITE于1993年毕业于加州斯坦福大学,被美国多家知名杂志评为最值得关注经济管理学杰出人才,2006年-2009年担任Doll资本管理公司部门主管,2009年-2013年担任Doll ...

  6. 比特币市场活跃,VAST发行在即!

    截至1月25日13:30,BTC合约多空持仓人数比为1.44,市场做多人数占据优势:季度合约基差保持在1255美元上方,永续合约资金费率为正,交割及永续合约持仓总量为19.5亿美元,总体上多军占优:B ...

  7. Excel和CSV格式文件的不同之处

    来源:https://blog.csdn.net/weixin_39198406/article/details/78705016 1.个人理解:为何选择使用csv来存储接口测试用例相关字段数据,而不 ...

  8. .net使用CSRedis操作Redis缓存的简单笔记(新手教程)

    0.介绍 .NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Include ...

  9. 从微信小程序到鸿蒙js开发【13】——list加载更多&回到顶部

    鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 目录: 1.list加载更多 2.list回到顶部 3.<从微信小程序到鸿蒙js开发>系列文章合集 1.list加 ...

  10. 死磕Spring之IoC篇 - BeanDefinition 的加载阶段(XML 文件)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...