Python参数类型定义、私有函数与变量、全局变量

news/2024/11/27 8:43:40/

 

函数的参数类型定义

  • 参数名 + 冒号 + 类型函数
  • 函数定义在Python3.7之后可用
  • 函数不会对参数类型进行验证
  • def add(a:int, b:int=3):print(a + b)add(1, 2)
    add('hello', 'xiaomu')def test(a:int, b:int=3, *args:int, **kwargs):print(a, b, args, kwargs)test(1, 2, 3, '4', name='xiaomu')def test2(a:int, b, c=3):print(a, b, c)test2(1, 3, 4)

类中的私有函数与私有变量 

1、什么是私有函数私有变量

  • 无法被实例化后的对象调用的类中的函数与变量
  • 类内部可以调用私有函数与变量
  • 只希望类内部业务调用使用,不希望被使用者调用

2、私有函数与私有变量的定义

  • 在变量或函数前添加__(2个下横线),变量或函数名后面无需添加
  • # coding : utf-8class Cat(object):__cat_type = 'cat'def __init__(self, name, sex):self.name = nameself.__sex = sexdef run(self):result = self.__run()print(result)def __run(self):return f'{self.__cat_type} little cat {self.name} {self.__sex} is running happyly'def jump(self):result = self.__jump()print(result)def __jump(self):return f'{self.__cat_type} little cat {self.name} {self.__sex} is jumping happyly'class Test(object):passcat = Cat(name='rice', sex='boy')
    cat.run()
    cat.jump()
    print(dir(cat))
    print(cat._Cat__jump())
    print(cat._Cat__cat_type)

局部变量与全局变量 

1、全局变量

  • 在Python脚本最上层代码块的变量
  • 全局变量可以在函数内被读取使用
  • # coding : utf-8name = 'dewei'def test():print(name)test()def test1():name = 'xiaomu'print('in the def', name)test1()
    print('out the def', name)

2、局部变量

def test3():age = 33print(age)test3()def test4(a):a = 10

3、global

  • 将全局变量可以在函数体内进行修改
  • 列表和字典的全局变量并不需要global声明
  • def test5():global nameglobal agename = 10age = 18test5()
    print(name)
    print(age)test_dict = {'a' : 1, 'b' : 2}def test6():test_dict['c'] = 3test_dict.pop('a')test6()
    print(test_dict)


http://www.ppmy.cn/news/35026.html

相关文章

电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇

说到“按住电源键强制关机”的操作,想必大家都不会陌生,毕竟在电脑蓝屏或者电脑死机的时候,我们总是束手无策。而且,身边的人在遇到同样的情况时,往往都是选择长按电源键强制关机,所以当我们遇到同样的情况…

学习笔记|Vue入门笔记-计算属性详细学习笔记

1、引出问题我们都知道在Vue构造函数的参数对象中有一个【data】属性,该属性值是一个对象,该对象是对数据的代理,是一个键值对并且时刻与页面表现是一致的,但是这里面只能是简单的键值对,不能拥有业务逻辑,…

开发了一个Java库的Google Bard API,可以自动化与AI对话了

开发了一个Java库的Google Bard API,可以自动化与AI对话了 Google Bard是Google提供的还在实验阶段的人工智能对话服务。这明显是对标ChatGPT来的,它可以提供更实时的答案,会基于Google强大的网页数据。 为了更方便的使用并实现自动化&…

ajax本地跨域请求以及解决方法

什么是跨域?我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。所谓同源是指"协议域名端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源,只要没有同时满足这三个条件的请求即为…

STM32学习(八)

STM32串口与电脑USB口通信 特别注意:两个设备之间的TXD和RXD,必须交差连接,方可正常通信 RS-232异步通信协议 启动位:必须占1个位长,必须保持逻辑0电平。有效数据位:可选5、6、7、8、9个位长,L…

【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛客观题以及详细题解

题1 概念题。 USRAT:异步串口通信,常用于数据传输;SW-DP:SWD 的全称应该是 The Serial Wire Debug Port (SW-DP),也就是串行调试端口,是 >ARM 目前支持的两种调试端口之一;JTAG-DP:另一个调试…

Python|蓝桥杯进阶第五卷——数论

欢迎交流学习~~ 专栏: 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列: 🏆 Python | 蓝桥杯进阶第一卷——字符串 🔎 Python | 蓝桥杯进阶第二卷——贪心 💝 Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…

LeetCode:242. 有效的字母异位词

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 文章目录一、🌱[242. 有效的字母异位词](https://leetcode.cn/problems/valid-…