文章目录

函数参数
1.位置传递
2.名称传递

  1. def f(a,b):
  2. f(1,2)
  3. f(b=2,a=1)

3.可选参数传递(可选参数必须放在最后)
def f(a,b=1) ✔
def f(b=1,a) ❌
4.可变参数:函数可以接收不确定总数的参数变量
∗ *∗ 接收元组 f(n, *a)
∗∗ **∗∗接受字典 f(n, **a)

局部变量和全局变量
1.局部变量可与全局变量重名
2.局部变量函数调用时生效,函数运算结束后失效
3.局部变量为组合数据类型(列表,字典,集合)且未创建,等同于全局变量

  1. a = 1
  2. def f():
  3. global a #此时不能赋值,即global a=9 错误
  4. a +=10
  1. ls =['a','b']
  2. def f():
  3. ls.append('c')
  4.  
  5. f()
  6. print(ls)
  7. ['a', 'b', 'c']

面向对象OOP
计算三款产品的原始售价和实际售价之和

  1. class Product:
  2. def __init__(self,name):
  3. self.name = name
  4. self.label = 0
  5. self.real = 0
  6.  
  7. a = Product('电脑')
  8. b = Product('打印机')
  9. c = Product('投影仪')
  10. a.label,a.real = 10000, 8000
  11. b.label,b.real = 2000, 1000
  12. c.label,c.real = 1500, 900
  13.  
  14. s1,s2 = 0, 0
  15. for i in (a,b,c):
  16. s1 += i.label
  17. s2 += i.real
  18.  
  19. print(s1,s2)

类构建
类名使用大写字母组合,如ClassName BasicAuto

类描述通过 类名.__doc__来访问

  1. class DemoClass:
  2. "This is a demo for Python class"
  3. pass
  4.  
  5. print(DemoClass.__doc__)

类对象:类定义完后,默认生成一个类对象;类对象是type类的实例,表达为type类型

  1. class DemoClass:
  2. "This is a demo for Python class"
  3. print('hello')
  4.  
  5. print(DemoClass.__doc__)
  6. print(type(DemoClass))
  7. hello
  8. This is a demo for Python class
  9. <class 'type'>

类定义即执行,不需要调用

  1. class DemoClass:
  2. "This is a demo for Python class"
  3. print('hello')
  4.  
  5. hello

实例对象不同于类对象,实例对象是python类的最常用使用方式

  1. class DemoClass:
  2. "This is a demo for Python class"
  3. print('hello')
  4.  
  5. a = DemoClass()
  6.  
  7. print(type(DemoClass))
  8. print(type(a))
  9. hello
  10. <class 'type'>
  11. <class '__main__.DemoClass'>

构造函数:init() l类实例化时使用的函数

  1. class DemoClass:
  2. def __init__(self,name):
  3. print(name)
  4.  
  5. a = DemoClass('老王')
  6. b = DemoClass('老李')

Python进阶二的更多相关文章

  1. Python进阶(二)----函数参数,作用域

    Python进阶(二)----函数参数,作用域 一丶形参角度:*args,动态位置传参,**kwargs,动态关键字传参 *args: ​ 动态位置参数. 在函数定义时, * 将实参角度的位置参数聚合 ...

  2. python进阶(二) 多进程+协程

    我们大多数的时候使用多线程,以及多进程,但是python中由于GIL全局解释器锁的原因,python的多线程并没有真的实现 实际上,python在执行多线程的时候,是通过GIL锁,进行上下文切换线程执 ...

  3. Python进阶(二)

    高阶函数 1.把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式. 2.Python内建了map( )和reduce( ) 函数 map()函数接收两个参数,一个是函数 ...

  4. Python进阶(十二)----re模块

    Python进阶(十二)----re模块 一丶re模块 ​ re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. #正则表达式: ...

  5. Python 面向对象进阶(二)

    1. 垃圾回收 小整数对象池 Python对小整数的定义是 [-5, 257),这些整数对象是提前建立好的; 在一个Python程序中,所有位于这个范围内的整数,使用的都是同一个对象; 单个字符共用对 ...

  6. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  7. Python进阶:全面解读高级特性之切片!

    导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔 ...

  8. Python进阶:迭代器与迭代器切片

    2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇.合并后,修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动.原系列的单篇就不删除了,毕竟也是 ...

  9. Python进阶(三十五)-Fiddler命令行和HTTP断点调试

    Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令   上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的se ...

随机推荐

  1. [ASP.NET Core 3框架揭秘] 依赖注入[9]:实现概述

    <服务注册>.<服务消费>和<生命周期>主要从实现原理的角度对.NET Core的依赖注入框架进行了介绍,接下来更进一步,看看该框架的总体设计和实现.在过去的多个版 ...

  2. ES、kibana安装及交互操作

    一.ES的安装与启动 1.ES安装(Windows环境) 下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 版本 ...

  3. asp.net 页面中添加普通视频的几种方式

    第一种 是通过调用window media player进行播放诸如:wmv,asf等格式文件: <object align=center class="OBJECT" cl ...

  4. LiggEasyWinApp-103-Ligg.EasyWinForm:View

    首先请在VS里打开下面的文件,我们将对源码分段进行说明: View(视图):一个Function(功能)对应多个View(视图),本框架用View(视图)实现多窗体(MDI)的效果. 一个View(视 ...

  5. vs2017 输出 ling to sql 转为执行的sql语句

    在项目视图中,找到->输出 窗口,在窗口中选择ASP.NET Core Web服务器,调试项目即可看到执行的sql语句

  6. Zabbix-3.4简介及安装配置

    一.概述 1.为什么选择Zabbix? Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件.Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警.这样可以快速反馈 ...

  7. Linux系统学习 十一、DHCP服务器—相关文件、配置文件、服务器配置

    2.DHCP服务器相关文件 安装SHCP服务器 yum install dhcp 对应的端口 端口号: ipv4 udp67.udp68(不推荐改端口) ipv6 udp546.udp547(暂时还没 ...

  8. Iris入门操练1

    选一个框架,慢慢熟悉··· 按官网文档,先走一次.. package main import ( "github.com/kataras/iris/v12" "githu ...

  9. Python网络爬虫_Scrapy框架_2.logging模块的使用

    logging模块提供日志服务 在scrapy框架中已经对其进行一些操作所以使用更为简单 在Scrapy框架中使用: 1.在setting.py文件中设置LOG_LEVEL(设置日志等级,只有高于等于 ...

  10. MongoDB学习笔记(七、MongoDB总结)

    1.为什么要NoSQL:nosql能解决sql中那些解决不了的问题 NoSQL是什么:Not Only SQL,本质上还是数据库,但它不会遵循传统数据库的规则(如:SQL标准.ACID属性[事务].表 ...