Python之路【第十三篇】:isinstance()函数与lambda表达式及函数参数的传递方式

news/2024/7/5 15:21:27

isinstance()函数

isinstance()函数用来判断一个对象是否是某一个类的实例,是,返回True.否则返回False,如:

temp = '123'  r = instance(temp,str),结果返回True

def fun(temp):
    if isinstance(temp,str) or isinstance(temp,list) or isinstance(temp,dict):
        if len(temp) > 5:
            return True
        else:
            return False
    else:
        return None
temp = 12345
r = fun(temp)
print(r)

lambda表达式

用来创建简单的函数,简单的if....else....可以用三元运算符来代替,简单的函数可以用lambda表达式来创建,如:

def f1():
    return 123
f2 = lambda :123
print(f2())
def f3(a1,a2): return a1+a2 f4 = lambda a1,a2:a1+a2
print(f4(1,2))

  f1()是一个简单函数,f2()是其lambda表达式,两个函数是等价的

  f3()是一个简单函数,f4()是其lambda表达式,两个函数也是等价的

  调用的时候注意了,不要忘记括号还有里面的参数,如print(f2())与print(f4(1,2))

函数参数的传递方式 

对于列表、字典、set之类的传递参数的时候传递的是一个引用,相当于c语言中的传地址,效果一样,省内存
在python中,函数的传参传递的是引用,注意:

def f(arg):
  arg = 123
li = [1,2,3]
f(li)
print(li)

输出结果为:[1,2,3]
arg = 123,相当于arg = li ,arg = 123,本来是li的一个引用,后来碰到了arg = 123,就在内存里创建了123,arg就不再指向li了,反而指向内存中创建的123,所以输出的时候li 的值没有变化

def f(arg):
    arg.append(4)
li = [1,2,3]
f(li)
print(li)

  输出结果为[1,2,3,4],当把参数li传递给arg时,arg与li指向同一个内存地址,对arg进行修改,就相当于修改了原来的li,遇到内存地址的问题好好利用id()函数吧

转载于:https://www.cnblogs.com/ronghe/p/8360383.html


http://www.niftyadmin.cn/n/3044471.html

相关文章

Git-命令

git init : 将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 git clone :克隆现有的仓库,执行成功后会在你本地自动生成一个项目 git status : 查看当前项目的状态…

html css 显示数值_HTML语义化【HTML】

用最恰当的标签来标记内容语义化的 HTML 文档,不关心内容的显示效果。HTML语义化的作用对于人员语义化 HTML 会使 HTML 结构变的清晰,有利于维护代码和添加样式。便于团队开发和维护,语义化更具可读性,减少差异化。对于设备在没有…

有效激励--

一、五招激励士气低落的员工 员工为什么完成不了任务? 员工不知道如何去做 -- 提供相应的培训,提高他们的技能;某事或某人使他们无法工作 -- 弄清楚纠结是什么妨碍了员工的工作,帮助他扫除障碍;员工不愿工作或不愿按照…

python封装configparser模块获取conf.ini值

configparser模块是python自带的从文件中获取固定格式参数的模块,因为是python只带的,大家用的应该很多,我觉得这个参数模块比较灵活,添加参数、修改参数、读取参数等都有对应的参数供用户使用。因为本人看的都是接近自动化框架方…

currenthashmap如何实现线程安全_死磕Java并发编程(8):CurrentHashMap如何实现高效地线程安全?在Java8中有哪些设计实现的演进?...

这篇文章一开始我以为会比较简单,但是在深入源码分析时,遇到了很大的阻碍,比前面我们分析AQS以及读写锁的源码要难理解的多,断断续续也写了4天了。如果你看完还是没有理解的话,那我在这里表示深深的歉意,同…

Servlet综述

1、要谈到Servlet技术,不得不先谈谈动态网页的概念。 编写过网页的人都知道,浏览器能够根据HTML静态标记语言来显示各式各样的网页。但是如果我们需要在网页上完成一些业务逻辑:比如登陆验证。或者说网页显示的内容在服务器的数据库中。如果是…

Servlet技术实战

Servlet的框架是由两个java包组成的:javax.servlet和javax.servlet.http. javax.servlet包含了支持普通协议无关的Servlet的类。 javax.servlet.http包括了对HTTP协议的特别支持。  servlet的框架的核心是javax.servlet.Servlet接口,所有的Servle…

python如何编写树_python实现树结构

树在计算机科学的许多领域中使用,包括操作系统,图形,数据库系统和计算机网络。树数据结构与他们的植物表亲有许多共同之处。树数据结构具有根,分支和叶。自然界中的树和计算机科学中的树之间的区别在于树数据结构的根在顶部&#…