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

article/2023/9/24 16:08:50

 

函数的参数类型定义

  • 参数名 + 冒号 + 类型函数
  • 函数定义在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.ngui.cc/article/show-1007527.html

相关文章

用户态--fork函数创建进程

我们一般使用Shell命令行来启动一个程序&#xff0c;其中首先是创建一个子进程。但是由于Shell命令行程序比较复杂&#xff0c;为了便于理解&#xff0c;我们简化了Shell命令行程序&#xff0c;用如下一小段代码来看怎样在用户态创建一个子进程。 #include <stdio.h> #i…

OceanBase CTO杨传辉:持续降低使用门槛,打造开发者友好的分布式数据库

3月25日&#xff0c;首届OceanBase开发者大会在北京举行。大会发布了OceanBase 4.1版本&#xff0c;公布两大友好工具&#xff0c;升级文档易用性&#xff0c;统一企业版和社区版代码分支&#xff0c;全面呈现了OceanBase打造极致的开发者友好数据库的成果。过去13年&#xff0…

【广州华锐互动】电力线路检测VR实训系统有哪些特色?

在电力系统运行中&#xff0c;故障测试是非常重要的一环&#xff0c;旨在检测和排除系统中可能存在的故障&#xff0c;保障电力系统的正常运行。传统的故障测试方法往往需要在实际场景下进行操作&#xff0c;不仅操作难度较大&#xff0c;而且存在安全隐患&#xff0c;同时操作…

详解内核态与用户态

介绍下内核态与用户态 内核态和用户态是操作系统中的两种不同的运行状态&#xff0c;它们的区别如下&#xff1a; 权限不同&#xff1a;内核态是操作系统拥有最高权限的运行状态&#xff0c;可以访问系统的所有资源&#xff0c;而用户态只能访问受限的资源。 系统调用&#x…

网易云音乐API部署Vercel获取接口过程

前提&#xff1a;部署自己的网易云接口主要用途在于在完成前端的仿网易云播放器的时候&#xff0c;根据自己部署的接口可以用于获取数据。大体流程是通过在github上fork别人的API接口项目&#xff0c;然后在Vercel部署即可获得自己的网易云后端数据接口了&#xff0c;不过根据我…

(五)Tomcat源码阅读:Connector组件分析

一、概述 因为Connector组件没有实现接口规范&#xff0c;因此我们直接对该类的方法进行分析即可。 二、源码阅读 阅读思路&#xff0c;我的阅读思路是这样的&#xff0c;大的类无非就是对小类的使用&#xff0c;因此我们想分析整体的一下架构的化我们就先从大类出发找到比较…

【LeetCode】二叉树的前序遍历(递归,迭代,Morris 遍历)

目录 题目要求&#xff1a;给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 方法一&#xff1a;递归 方法二&#xff1a;迭代 思路分析&#xff1a; 复杂度分析 代码展示&#xff1a; 方法三&#xff1a;迭代进阶 思路分析&#xff1a; 代码展示&…

OpenAI translator + AI vocabulary + scispace + chatpdf 学英语

OpenAI translator AI vocabulary scispace chatpdf 学英语 文章目录OpenAI translator AI vocabulary scispace chatpdf 学英语workflow记录这几个软件都是这波AIGC热潮中的产品下面我要读一下2022美赛E题我分别上传到了chatpdf和scispace&#xff0c; 需要翻译的地方我…

RHCSA8.2模拟题

环境系统IP 地址mars.domain250.example.com172.25.250.100venus.domain250.example.com172.25.250.200您使用的系统属于 DNS 域 domain250.example.com。该域中的所有系统都位于172.25.250.0/255.255.255.0 子网中&#xff0c;该子网中的所有系统都位于 domain250.example.com…

多少个X 蓝桥杯模拟

问题描述给定一个字母矩阵。一个 X 图形由中心点和由中心点向四个45度斜线方向引出的直线段组成&#xff0c;四条线段的长度相同&#xff0c;而且四条线段上的字母和中心点的字母相同。一个 X图形可以使用三个整数 r, c, L 来描述&#xff0c;其中 r, c 表示中心点位于第 r 行第…