文章目录

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

def f(a,b):
f(1,2)
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.局部变量为组合数据类型(列表,字典,集合)且未创建,等同于全局变量

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

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

class Product:
def __init__(self,name):
self.name = name
self.label = 0
self.real = 0 a = Product('电脑')
b = Product('打印机')
c = Product('投影仪')
a.label,a.real = 10000, 8000
b.label,b.real = 2000, 1000
c.label,c.real = 1500, 900 s1,s2 = 0, 0
for i in (a,b,c):
s1 += i.label
s2 += i.real print(s1,s2)

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

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

class DemoClass:
"This is a demo for Python class"
pass print(DemoClass.__doc__)

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

class DemoClass:
"This is a demo for Python class"
print('hello') print(DemoClass.__doc__)
print(type(DemoClass))
hello
This is a demo for Python class
<class 'type'>

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

class DemoClass:
"This is a demo for Python class"
print('hello') hello

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

class DemoClass:
"This is a demo for Python class"
print('hello') a = DemoClass() print(type(DemoClass))
print(type(a))
hello
<class 'type'>
<class '__main__.DemoClass'>

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

class DemoClass:
def __init__(self,name):
print(name) a = DemoClass('老王')
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. 如何下载Vimeo视频

    MediaHuman YouTube Downloader是应用在Mac上的一款非常优秀的YouTube视频下载工具,YouTube Downloader破解版将帮助你快速完成视频下载,而不会挂断.您 ...

  2. SpringCloud-创建服务消费者-Feign方式(附代码下载)

    场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  3. Android WebView 加载富文本内容

    WebView加载数据的方式有两种: 1. webView.loadUrl(data);//加载url 2. webView.loadDataWithBaseURL(null,data, " ...

  4. 【iOS bug记录】UICollectionviewCell刷新变得这么莫名其妙?

    项目是一个即时聊天的社交软件,聊天流采用的是UICollectionView,随着进度的完善,发现一个特别的bug,UICollectionviewCell的复用,并没有直接insert进去,而是出现 ...

  5. Android BSearchEdit 搜索结果选择框

    EditText搜索结果下拉框.自动or回调模式.可diy.使用超简便 (EditText search results drop-down box, auto or callback mode, d ...

  6. How we implemented consistent hashing efficiently

    原文链接https://medium.com/ably-realtime/how-to-implement-consistent-hashing-efficiently-fe038d59fff2 我们 ...

  7. 《Hands-On System Programming with Go》之读文件

    有点全,但不是很全. 一次读入,分批次读入,缓存读入. 要记得这几种不同读取的应用场景. package main import ( "bufio" "bytes&quo ...

  8. 封装和@property

    封装和@property 一.复习 1.接口类和抽象类 python中没有接口类,有抽象类,abc模块中的metaclass=ABCMeta,@abstructmethod,本质是做代码规范用的,希望 ...

  9. C语言程序设计100例之(11):求质数

    例11  求质数 问题描述 质数是指除了有1和自身作为约数外,不再有其他约数的数.比如:3.5.7是质数.而9不是质数,因为它还有约数3. 编写程序求给定区间中的所有质数. 输入格式 两个整数a和b, ...

  10. oracle中创建用户、角色、权限、表空间简单使用

    一.数据库用户 创建数据库用户 create user 用户名 identified by 密码; 授权 grant 权限名 to 用户名; 查看当前用户权限 select * from sessio ...