Python基础(四)

本文详细介绍了Python中可更改与不可更改对象的概念及其区别,并解释了这些特性如何影响函数内部对象的变化。此外还探讨了不同类型的函数参数及其使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可更改与不可更改对象
  1. 在Python中,string,tuples和numbers是不可更改对象,而list、dict是可以修改的对象。不可变类型,变量赋值 a = 5 后再赋值a = 10,这里实际是新生成了一个int对象,然后让a指向它,而原来的5对象被丢弃,而不是把5对象更改成10。可变对象就是在原来的对象上更改其数据。
  2. Python函数的参数传递。不可变类型类似值传递,如整数、元组、字符串,传递的只是参数的值,并不会影响对象本身。在函数中的任何操作都不会影响原来对象的值。而可变类型类似于引用传递,在函数中的操作会影响原来对象。
  3. 但是严格意义上说,我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
def ChangeInt(a):
    a = 10

b = 2
ChangeInt(b)
print b # 结果还是2。
函数的参数
  • 必备参数,不可不传,否则将出错
  • 关键字参数,函数调用使用关键字参数来确定传入的参数值,和参数的顺序无关
def printinfo(name, age):
    print "name:", name
    print "age:", age
    return

printinfo(age=23, name='super')
  • 默认参数,在没有参数传入时,使用默认值
def printinfo(name, age=20):
    print "name:", name
    print "age:", age
    return

printinfo(name='super')
  • 不定长参数
# 函数定义方式

def funcname([formal_args,] *var_args_tuple):
    function_suite
    return [expression]
    
def printinfo(arg1, *vartuple):
    print '输出:'
    print arg1
    for i in vartuple:
        print i
    return
printinfo(10)
printinfo(70,19,23,21)
  • 匿名函数,使用lambda来创建匿名函数
# 匿名函数定义方式
lambda [arg1 [, arg2, ..., argn]]:expression

sum = lambda arg1, arg2: arg1 + arg2
print sum

全局变量和局部变量
arg = 10 # arg全局变量

def sum(arg1, arg2):
    arg = arg1 + arg2 # arg局部变量
    return arg
print arg

# python会默认任何在函数中的变量都是局部变量,若需要在函数中更改全局变量则需要加一个global
money = 100
def addMoney():
    global money # 告诉Python money是一个全局变量
    money = money + 100
    return
print money
导入模块

在导入一个模块时,Python解析器对模块位置的搜索顺序是:
    1、当前目录
    2、如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
    3、如果都找不到,Python会查看默认路径,UNIX下,默认路径一般为/usr/local/lib/python。

本文参考:http://www.runoob.com/python/python-tutorial.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值