首页 > 编程语言 >超详细Python教程——作用域

超详细Python教程——作用域

时间:2024-06-17 20:57:40浏览次数:14  
标签:__ 教程 name 作用域 lv Python vip 变量 函数

学习过 Java 的同学都知道,Java 的类里面可以给方法和属性定义公共的( public )或者是私有的 ( private ),这样做主要是为了我们希望有些函数和属性能给别人使用或者只能内部使用。

通过学习 Python 中的模块,其实和 Java 中的类相似,那么我们怎么实现在一个模块中,有的函数和变量给别人使用,有的函数和变量仅仅在模块内部使用呢?

在 Python 中,是通过 _ 前缀来实现的。正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,ni12,PI等;类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的 __name__ 就是特殊变量,还有 __author__ 也是特殊变量,用来标明作者。

注意,我们自己的变量一般不要用这种变量名;类似 _xxx 和 __xxx 这样的函数或变量就是非公开的(private),不应该被直接引用,比如 _abc ,__abc 等;

这里是说不应该,而不是不能。因为 Python 种并没有一种方法可以完全限制访问 private 函数或变量,但是,从编程习惯上不应该引用 private 函数或变量。

比如:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

def _diamond_vip(lv):
    print('尊敬的钻石会员用户,您好')
    vip_name = 'DiamondVIP' + str(lv)
    return vip_name


def _gold_vip(lv):
    print('尊敬的黄金会员用户,您好')
    vip_name = 'GoldVIP' + str(lv)
    return vip_name


def vip_lv_name(lv):
    if lv == 1:
        print(_gold_vip(lv))
    elif lv == 2:
        print(_diamond_vip(lv))


vip_lv_name(2)

输出的结果:

尊敬的钻石会员用户,您好
DiamondVIP2

在这个模块中,我们公开 vip_lv_name 方法函数,而其他内部的逻辑分别在 _diamond_vip 和 _gold_vip private 函数中实现,因为是内部实现逻辑,调用者根本不需要关心这个函数方法,它只需关心调用 vip_lv_name 的方法函数,所以用 private 是非常有用的代码封装和抽象的方法

标签:__,教程,name,作用域,lv,Python,vip,变量,函数
From: https://blog.csdn.net/abcd51685168/article/details/139728951

相关文章

  • 超详细Python教程——Magic Method
    在Python中,所有以"__"双下划线包起来的方法,都统称为"魔术方法"。比如我们接触最多的 __init__ 。魔术方法有什么作用呢?使用这些魔术方法,我们可以构造出优美的代码,将复杂的逻辑封装成简单的方法。那么一个类中有哪些魔术方法呢?我们可以使用Python内置的方法 dir()......
  • Web框架,Python框架初识,Django框架初识与安装,
    ⅠWeb框架【一】Web框架本质web框架本质上可以看成是一个功能强大的socket服务端,用户的浏览器可以看成是拥有可视化界面的socket客户端。两者通过网络请求实现数据交互,从架构层面上先简单的将Web框架看做是对前端、数据库的全方位整合#TCP服务端与客户端进行交互的过程#......
  • 【Vue3的组合式API】超详细教程,含computed、watch、组件通信、模版引用......
    前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享【Vue3的组合式API】超详细教程,包含setup语法糖、computed、watch、组件通信、模版引用、vue3新特性等等......,并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎收藏+关注哦......
  • python字符串的一些操作实例
    已知字符串a=“aAsomr3idd4HGHbigs7Dlsf9YeAF”,要求如下1.请将a字符串的大写改为小写,小写改为大写。2.将a字符串的数字取出,并输出成一个新的字符串。3.将a字符串中的内容反向输出4.打印a字符串中所有奇数位上的字符(下标是1,3,5,7…位上的字符)5.将a字符串的所有偶数位上......
  • python爬取数据爬取图书信息
    #encoding=utf-8importjson#json包,用于读取解析,生成json格式的文件内容importtimefromrandomimportrandintimportrequests#请求包用于发起网络请求frombs4importBeautifulSoup#解析页面内容帮助包fromlxmlimportetreeimportre#正则表达式......
  • Python统计实战:一题巩固单因子方差分析
    为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。(以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。)练习题一家管理咨询公司为不同的客户提供人力资源管理......
  • 【实用软件】Siemens NX(UG)2406系列(NX2406版本为例)安装教程
    下载链接:https://r0vr8xquwul.feishu.cn/docx/QvHKdwqk6ooVWXxaBuWcFXHgnMc详细图文教程:https://www.yuque.com/zhefengerhuanzaigua/bld6x5/ni6x41v2h696ybc8软件介绍SiemensNX(前身为UnigraphicsNX,UGNX版本自12以后不再更新,改为SiemensNX以其他版本号进行更新。)是Si......
  • Python-入门指南第二版-全-
    Python入门指南第二版(全)原文:annas-archive.org/md5/4b0fd2cf0da7c8edae4b5ecfd40159bf译者:飞龙协议:CCBY-NC-SA4.0前言正如标题所承诺的,本书将向你介绍世界上最流行的编程语言之一:Python。它旨在面向初学者和希望将Python添加到他们已经掌握的语言中的更有经验的程序员......
  • Python 中的 Pandas(数据分析与处理)
    Pandas是Python中最受欢迎的数据处理库之一,其名字源自于“PanelData”(面板数据)的缩写。它提供了三种主要的数据结构:Series, DataFrame,Panel(在新版本已经被弃用)    数据操作与基本技巧数据读取与加载:Pandas支持从多种数据源加载数据,包括CSV文件、Excel文件、S......
  • 一行Python代码可以做什么,超出你想象
    哈喽,大家好,我是木头左!揭秘编程语言的灵活性在编程的世界里,简洁就是力量。Python以其优雅和简洁而著称,让开发者能够用更少的代码做更多的事。但这并不意味着功能上的妥协——Python的强大之处在于它允许在一行代码中执行多个语句,这不仅能提高的编码效率,还能使代码更加紧凑和易......