*args, **kwargs →在python都表示可变参数, *args表示任意多个任意类型无名参数, 是一个元组; **kwargs表示关键字参数(key/value参数), 是一个字典,接收的参数如a=’hello’,b=1 ; 注意如果*args, **kwargs同时使用的时候, 必须*args在前

#coding=utf-8
def fun(a,*b):
print a
print b print fun(1,2,3,4,5,6) #fun(1, a=2) 是会报错的
#输出结果:
#1
#(2, 3, 4, 5, 6)
#可以看到, 形参a只接收了一个参数1, 其它后面的的5个参数全部被b接收了 #coding=utf-8
def funKW(a, **b):
print a
print b print funKW(1,b='2',c=200)
#输出结果:
#1
#{'c': 200, 'b': '2'}

pass关键字解释:

在编写一个程序时, 执行语句部分思路还没有完成用pass语句来占位(标记), 是要过后来完成的代码. 比如下面这样:

def test():
pass
定义一个函数 test, 但函数体部分暂时还没有完成, 又不能空着不写内容, 因此可以用pass来替代占个位置. 

pass也可用于while语句的无限循环, 每次迭代时不需要任何操作(最好不要写这样的代码)

def whileTest():
while(True):
pass

1. 空语句, 是为了保持程序结构的完整性。

2. 不做任何事情, 一般用做占位语句。

self解释:

  1. self用于区分类方法和普通函数; 普通函数如果没有形参, 那就是函数名后直接跟上(), 类方法永远有一个额外的参数名称, 并且是第一个参数, 那就是self; 就算想在类内部定义一个无任何参数的方法, 也必须带上self(并且一定要放在第一位)参数, 当然调用的时候不用为这个参数赋值, Python会提供这个值; 这个特别的变量就是对象本身, 按照惯例它的名称是self.虽然可以给这个参数任何名称, 但是 强烈建议 你使用self这个名称——其他名称都是不赞成你使用的。使用一个标准的名称有很多优点——你的程序读者可以迅速识别它, 如果使用self的话, 还有些IDE(集成开发环境)也可以帮助你.
  2. self相当于Java、C#中的this关键字
  3. 假如有一个类称为Animal和这个类的一个实例Dog。当你调用这个对象的方法Dog.Eat(arg1, arg2)的时候, 这会由Python自动转为Animal.method(Dog, arg1, arg2)→这就是self的原理了. 这也意味着如果你有一个不需要参数的方法, 你还是得给这个方法定义一个self参数。
class Animal():
def eat(self):
print 'This dog eating'
a=Animal()
a.eat()

011. Python中*args, **kwargs 和 pass 和self 解释的更多相关文章

  1. python中*args, **kwargs理解

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  2. python中*args,**kwargs

     *args :当我们不知道要有多少个参数传给函数,或者我们想把一个列表或者tuple存起来以后传给函数. **kwargs:当我们不知道有多少个关键字参数要传给函数,或者我们想把字典存起来以后传给函 ...

  3. python 中*args 和 **kwargs

    简单的可以理解为python 中给函数传递的可变参数,args 是 列表的形式.kwargs 是 key,value的形式,也就是python 中的字典. *args 必须出现在**kwargs 的前 ...

  4. python 中 *args 和 **kwargs 的区别

    在 python 中,*args 和 **kwargs 都代表 1个 或 多个 参数的意思.*args 传入tuple 类型的无名参数,而 **kwargs 传入的参数是 dict 类型.下文举例说明 ...

  5. Python中 *args 和 **kwargs 的区别

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  6. python中*args和**kwargs学习

    *args 和 **kwargs 经常看到,但是一脸懵逼 ,今天终于有收获了 """ python 函数的入参经常能看到这样一种情况 *args 或者是 **kwargs ...

  7. Python中 *args 和 **kwargs 的含义?

    答:在python中,*args和**kwargs通常使用在函数定义里.*args 和 **kwargs 都允许你给函数传不定数量的参数,即使在定义函数的时候不知道调用者会传递几个参数.ps: *ar ...

  8. python 中 *args he **kwargs的区别

    ''' 一 *args 和 **kwargs 的区别? *args 表示任意个 无名参数, 类型是元祖 tuple. **kwargs 表示的是关键字的参数 传入的参数是 dict 类型. 当*和** ...

  9. Python中*args和**kwargs 的简单使用

    # 在函数定义中使用*args和kwargs传递可变长参数. *args用作传递非命名键值可变长参数列表(位置参数); kwargs用作传递键值可变长参数列表# *args表示任何多个无名参数,它是一 ...

随机推荐

  1. EF6 Code First 系列 (四):SQLite的DropCreateDatabaseIfModelChanges和乐观并发控制

    没什么好说的,能支持DropCreateDatabaseIfModelChanges和RowVersion的Sqlite谁都想要.EntityFramework7正在添加对Sqlite的支持,虽然EF ...

  2. html5适应屏幕的方案

          适应屏幕的方案: 1.css3 Media queries (针对多版本设计稿) 2.设计稿不复杂的时候 通过宽度自适应用百分比 3.通过更新meta:viewport标签,通过设计稿尺寸 ...

  3. python学习笔记(threading多线程)

    博主昨天优化了接口框架想着再添加些功能 想到对接口的性能压力测试 在工作过程中之前都是使用的工具 如:loadrunner.jmeter 想着这次准备用python实现对接口的性能压力测试 首先要实现 ...

  4. IOS-MapKit

    一.MapKit框架的使用 MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK MapKit有一个比较重要的UI控件 :MKMapView,专门用于地图显示   跟踪显示用户的位置 ...

  5. day5-configparser模块

    一.概述 在软件开发过程中,很多时候需要处理配置文件的读取解析和改写,在python中专门处理配置文件的模块就是configpaser了.顾名思义,configpaser就是配置解析器,可用来对符合格 ...

  6. Http请求get和post调用

    工作中会遇到远程调用接口,需要编写Http请求的共通类 以下是自己总结的Http请求代码 package com.gomecar.index.common.utils; import org.apac ...

  7. 简要谈谈javascript bind 方法

    最近去参加了场面试,跟面试官聊了很多JS基础上的东西,其中有个问题是谈谈对apply.call.bind的理解和区别.顿时一愣,apply.call我知道,经常用的东西,bind是什么鬼!!!好像见过 ...

  8. 解决pip安装太慢的问题

    经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的 ...

  9. 旧书重温:0day2【10】第五章 堆溢出利用2

    好久没有发帖子啦!最近一直很忙!但是还是抽空学习啦下! 前段时间匆匆忙忙的把0day2上的堆溢出实验做啦! 可能当时太浮躁啦,很多细节没注意!结果:实验结果很不满意!所以就有啦这一篇!! 上一篇是发布 ...

  10. 神经网络中的Softmax激活函数

    Softmax回归模型是logistic回归模型在多分类问题上的推广,适用于多分类问题中,且类别之间互斥的场合. Softmax将多个神经元的输出,映射到(0,1)区间内,可以看成是当前输出是属于各个 ...