自学python之基本参数、可变参数、关键字参数

#!/usr/bin/env python
# encoding: utf-8
'''
@author: heshengjin-何胜金
@contact: 2356899074@qq.com
@software: pycharm
@file: argumentsTest.py
@time: 2018/12/22 0022 16:37
@desc:
        python数据类型:
        1、字符串 isinstance str
        2、布尔类型  isinstance bool
        3、整数   isinstance int
        4、浮点数 isinstance float
        5、数字(整数、浮点数)3、4
        6、列表 isinstance list
        7、元组 isinstance tuple
        8、字典 isinstance dict
        9、日期


       一般的就是就是类似Java参数一般基本数值和引用传递(测试参数引用传递,类似Java等参数方式)
       可变参数实际函数内部是一个tuple(不可变了,但是不是真的不可改变)
       关键字参数实际还是一个dict(只是一个copy拷贝,完全不是外面那个,***浅拷贝***)
'''
import time

def test(m, n, *g, **kw):
    print( '--------------change----------------------')
    # 一般基本参数值
    print(isinstance(m, bool))
    # 一般参数list
    print( isinstance(n, list))

    # 可变参数tuple
    print( isinstance(g, list))
    print(isinstance(g, tuple))

    # 关键字参数,copy的dict
    print( isinstance(kw, dict))
    print('--------------isinstance 完毕----------------------')
    # 改变一般参数(bool)
    m = False
    # 改变一般参数(list是引用)
    n.append(100)

    # 改变可变参数,tuple不可以改变
    # 但是g[3]又是一个list对象引用,可以改变
    g[3].append(100)

    # 改变关键字参数,改变copy的那个
    kw['hsj'] = 18
    kw['lby'].append(100)

    print(m)
    print( n)
    print( g)
    print( kw)

def print_user_info( name ,  age  , sex = '男' ,*h, **g):
    # 打印用户信息
    print('昵称:{}'.format(name) , end = ' ')
    print('年龄:{}'.format(age) , end = ' ')
    print('性别:{}'.format(sex) ,end = '\n' )
    print('''可变参数''',h)
    print('''关键字参数''',g)
    print('''print_user_info结束\n''')
    return;

# print(isinstance( 123,int))
# print(isinstance( 123.123,float))
# print(isinstance('''何胜金''',str))
# print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

if __name__ == '__main__':

    # 调用 print_user_info 函数
    # ----------散传参数-----------
    print_user_info('两点水', 18, '女',h=[4,5,6], gg=[1, 2, 3])
    # ----------变量方式传参数------
    # (强烈推荐此种方式)
    gg = {'hsj': 'hsj is smart!'}
    h = [4, 5, 6]
    print_user_info('3点水', 20, 'man',*h, **gg)
    # ----------散传参数-----------
    print_user_info('4点水', 20, 'man',h=[4,5,6], gg=[1, 2, 3], hh=[1, 2, 3])

    # 

    # 一般参数list
    m = True
    n = [7, 8, 9]

    # 可变参数,list
    g = [1, 2, 3, [1, 2, 3]]

    # 关键字参数,字典
    kw = {'hsj': 27, 'lby': [1, 2, 3, 4]}

    print( '--------------原始的数据变量(观察变量状态)----------------------')
    print(m)
    print( n)
    print( g)
    print( kw)

    print('---------------start---------------------')
    test(m, n, *g, **kw)
    print( '---------------end---------------------')

    print('---------------原始的数据变量(观察变量状态)---------------------')
    print(m)
    print(n)
    print( g)
    print( kw)


在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值