python“静态”变量、实例变量与本地变量的声明示例


Posted in Python onNovember 13, 2020

前言

虽然各种编程语言之间大部分语法存在共通的地方,但是在一些细节的处理上还是千差万别

才接触Python不久(之前是学Java的),实在想吐槽一下语言之间编码格式上的不统一问题,比如Java用分号分隔代码块,Python用空格,这无形之中增加了编码人员的学习成本

作为初学人员,还是老老实实记录一下学习过程中的坑:)

1. “静态”变量的声明

这里的静态变量是借用Java中静态变量的概念(不知道Python中的具体概念是什么),指既可以通过类名直接进行访问,也可以通过类的实例进行访问的变量。这种变量的声明很简单,直接在类代码块中设置变量即可,不需要任何关键字

Java中这样声明的变量是实例变量,只能通过对象实例进行访问

class Test:
 # 这是一个“静态”变量
 className = "Test"

2. 实例变量的声明

实例变量是指必须通过类的实例去访问的变量

实例变量的声明比较神奇,在任意的方法中,在变量名称前面加上“self.”,该变量就变成了实例变量。这样这个变量在其他的方法中也同样可以使用了(个人感觉有点奇葩啊有木有)

所以实例变量的声明有一点特别重要,如果该实例变量会做跨方法的使用,那么实例变量声明的方法一定要在实例变量使用的方法调用之前执行

def __init__(self):
  # 这是一个实例变量
  self.hello = Hello()

3. 本地变量的声明

本地变量是仅在类的方法中使用的变量

声明方法也很简单,直接在类的方法中定义变量即可

def who(self):
  # 这是一个本地变量
  name = "Cain"
  return name

最后是一个完整的使用示例:

一个hello类:

class Hello:
 def who(self):
  # 这是一个本地变量
  name = "Cain"
  return name

一个Test类(其中会用到hello类):

# -*- coding:UTF-8 -*-
from hello import Hello
 
 
class Test:
 # 这是一个“静态”变量
 className = "Test"
 
 def __init__(self):
  # 这是一个实例变量
  self.hello = Hello()
 
 def sayName(self):
  # 类的方法中访问实例变量
  print("My name is " + self.hello.who())
 
 
if __name__ == "__main__":
 test = Test()
 test.sayName()
 
 test1 = Test()
 # 通过类名直接访问静态变量
 print(Test.className)
 # 通过实例名访问静态变量
 print(test.className)
 # 通过实例名访问实例变量
 print(test.hello.who())
 # 通过类名直接访问实例变量会报错!!!
 # print(Test.hello.who())

总结

到此这篇关于python“静态”变量、实例变量与本地变量声明的文章就介绍到这了,更多相关python静态变量、实例变量与本地变量声明内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
Python补齐字符串长度的实例
Nov 15 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 Python
Python批量安装卸载1000个apk的方法
Apr 10 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
Python识别处理照片中的条形码
Nov 16 Python
Python实现中英文全文搜索的示例
Dec 04 Python
Python和Bash结合在一起的方法
Nov 13 #Python
python小技巧——将变量保存在本地及读取
Nov 13 #Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 #Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 #Python
Python图像识别+KNN求解数独的实现
Nov 13 #Python
Django正则URL匹配实现流程解析
Nov 13 #Python
Django框架请求生命周期实现原理
Nov 13 #Python
You might like
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php删除数组元素示例分享
2014/02/17 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
JavaScript的一些小技巧分享
2021/01/06 Javascript
Python实现测试磁盘性能的方法
2015/03/12 Python
Python中的面向对象编程详解(上)
2015/04/13 Python
Python解决八皇后问题示例
2018/04/22 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
介绍一下你对SOA的认识
2016/04/24 面试题
商务日语专业毕业生求职信
2013/10/26 职场文书
质量承诺书范文
2014/03/27 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
奔腾年代观后感
2015/06/09 职场文书
外科护士长工作总结
2015/08/12 职场文书
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android