Python中的Function定义方法第1/2页
发布时间:2021-05-10 20:33:49
标签:Python,Function
下面就先定义一个函数:
def foo():
print('function')
foo()
在上述代码中,定义了一个名为foo的函数,这个函数没有参数。最后一行代码的功能是调用这个函数。这是一个函数的最简单形式。下面来介绍一下有参数的函数:
def foo():
print('function')
def foo1(a,b):
print(a+b)
foo()
foo1(1,2)
foo1就是一个有参数的函数,使用foo1(1,2)就可以调用这个有参的函数了。
在程序中,有变量存在,就会涉及到变量的作用域的问题。在Python中,变量的作用域分三个等级:global、local和nonlocal。
global:顾名思义,表示全局变量。即这个变量在python中处于最高层次上,也就是这个变量的定义层次最高,而不是在函数或类中。
local:局部变量,被定义在函数之中。
nonlocal:这是一个相对的概念。在python中,函数内部可以嵌套定义内部函数,这样函数内部的变量相对于函数内部的内嵌函数来讲就是nonlocal的。
下面,给出相关的程序来说明,首先看一下全局和局部变量:
x = 1
y = 2
def foo(x):
print(x)
print(y)
print('***********')
x = 3
global y
y = 3
print(x)
print(y)
print('***********')
foo(x)
print(x)
print(y)
#************************
#运行结果
1
2
***********
3
3
***********
1
3
在上述程序中,定义了两个全局变量x和y, 在函数foo内部,也定义了一个局部变量x。根据运行结果可知,在foo内部,变量x是真正的局部变量。因为对其所做的修改并没有对全局变量x产生影响。另外,如果在foo内部需要使用全局变量,则需要使用global关键字。global y的意图就是声明变量y为外部声明过的全局变量y。所以,在foo内部对y进行修改后,在foo外部仍然有影响。因为foo修改的是全局变量。
再来看一下nonlocal:
def out():
z = 3
def inner():
nonlocal z
z = 4
print('inner function and z = {0}'.format(z))
inner()
print('out function and z = {0}'.format(z))
out()
#**********
#运行结果
inner function and z = 4
out function and z = 4
12下一页阅读全文


猜你喜欢
- 本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法。分享给大家供大家参考,具体如下:一、需求分析合并一个文件夹下所有txt
- 本文实例讲述了Python连接phoenix的方法。分享给大家供大家参考,具体如下:phoenix是由saleforce.com开源的一个项
- 引言在Python中但凡提到的赋值运算符其实讲的就是等号=,在编程语言中的等号含义再也不是数学中的1+1=2的这种等号,真实含义是将=右侧的
- 前言pandas对大数据有很多便捷的清洗用法,尤其针对缺失值和重复值。缺失值就不用说了,会影响计算,重复值有时候可能并未带来新的信息反而增加
- 本文实例讲述了Python实现的建造者模式。分享给大家供大家参考,具体如下:#!/usr/bin/python# -*- coding:ut
- 本文实例为大家分享了JS实现简易计算器的具体代码,供大家参考,具体内容如下<!DOCTYPE html><html>
- 问题:编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 +
- 数据结构数据结构的概念很好理解,就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建
- 要自己写一个存储系统,可以依照以下步骤:1.写一个继承自django.core.files.storage.Storage的子类。from
- 这种问题一般是退出flask服务时选择了disconected而不是选择terminate,dicconected是一种伪断开,只是在pyc
- 1,查看py文件内的所有成员及快速定位到代码块如果你的py文件代码超过200行,一定要采用这个方法,能大大提高你的代码查找效率。方法1:(1
- 1、安装scikit-learn1.1Scikit-learn 依赖Python (>= 2.6 or >= 3.3),NumP
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&
- 本文实例讲述了Node.js API详解之 Error模块用法。分享给大家供大家参考,具体如下:Node.js API详解之 ErrorNo
- sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命
- 框架thinkphp 版本:3.2.3 内容:数据库操作1. 多表查找一条数据M('a表')->join("
- 代码如下import wordcloudimport jiebafont = r'C:\Windows\Fonts\simfang.
- 加载1个或多个要素<template> <div id="map" style="
- phpinfo函数phpinfo函数 PHP中提供了PHPInfo()函数,该函数返回 PHP 的所有信息,包括了 PHP 的编译选项及扩充
- 为什么会出现黏包现象:首先只有在TCP协议中才会出现黏包现象,是因为TCP协议是面向流的协议,在发送的数据传输的过程中还有缓存机制来避免数据