先贴代码:

# encoding = UTF-8
class Test(object):value1 = 100    #静态成员变量def __init__(self):      #构造函数self.value1 = 100    #成员变量value1,此处的value1和静态的value1不是同一个变量self.value2 = 200    #成员变量value2def getValue(self):     #类函数print(self.value1)    print(self.value2)  def setValue(self):    #类函数self.value1 = 1self.value2 = 2   def classfun(cls):    #类方法print(Test.value1)print(cls.value1)    #可以使用参数cls来访问静态成员变量,也可以使用 "类名.静态成员变量"访问#print(cls.value2)   error  // 在类方法中和C++一样, 不能使用非静态成员变量@staticmethoddef staticfun():        #类静态方法print(Test.value1)  #print(Test.value2) error  // 在类的静态成员函数中和C++一样, 不能使用非静态成员变量 if __name__ == "__main__":obj1 = Test()obj1.getValue()obj1.classfun()obj1.staticfun()print("-1")Test.value1 = 333print("-2")Test.classfun()print("-3")Test.staticfun()print("-4")obj2 = Test()print("-5")obj2.setValue()print("-6")obj2.getValue()print("-7")obj1.getValue()Test.staticfun()

测试结果:

100
200
100
100
-1
-2
333
-3
333
-4
-5
-6
1
2
-7
100
200
333

总结:

1 在python中,在类方法和类的静态成员函数中,不能访问非静态的成员函数。

2 在类的非静态成员函数中, 可以使用 类名.静态成员变量 访问类的静态成员变量,注意:

此时,如果在类的成员函数中,使用self.value3 (和静态成员变量名同名),那么这个value3也不是静态成员变量的那个value3

3 如果要访问类的静态成员变量必须使用 类名.变量名 的方式访问

4 类方法使用 @classmethod 说明

类的静态成员变量使用 @staticmethod 说明

5 类方法和静态成员函数十分相似。如果某个方法需要被其他实例共享,同时又要使用当前实例的属性,则定义该方法为类方法

6 建议使用self作为参数名,便于程序的阅读和统一,而对于类方法,约定使用cls作为参数名。其实,两者在形式上都可以用。

python成员变量,成员函数的总结相关推荐

  1. c2064 项不会计算为接受0个参数的函数_getMask()讨论:Abaqus Part对象的成员变量常用函数...

    最近工作之余,想制作一个自动对多cell的Part进行skin并建立相应set的小插件.我的目的是对该Part中各个cell分别进行skin,以便于将来赋予不同的属性.这样可以有效的减少输出结果文件的 ...

  2. 如何在MFC线程中使用控件的成员变量和函数

    比如说,在ListBox里我添加了一个CString类型的成员变量m_str,我想用m_str.GetCount或m_str.GetText之类的方法,但这些在线程中就不能用了. 使用控件的成员变量和 ...

  3. C++57个入门知识点_40 常成员函数(用于定义不可修改类内部成员变量的函数,一般用来修饰Get函数;常成员函数this指针:const T* const;常成员函数内部变量修改方法:强转/关键字)

    前面我们已经学习了C++中重要的知识点,特别是虚函数可能会有些懵逼,但是需要我们在实践中不断的理解和尝试,写代码是进步最快的方式,接下来将会介绍一些简单但很重要的知识点,本篇介绍常成员函数. 总结: ...

  4. Python文本变量与函数的解析执行,增强自动化测试数据驱动

    关注我,每天分享软件测试技术干货.面试经验,想要领取测试资料.进入软件测试学习交流群的可以直接私信我哦~~ 我们在使用Python进行自动化测试或者测试脚本开发时,通常会在代码中融入数据驱动设计,以便 ...

  5. python 私有变量和函数

    使用下划线 一个单下划线 (_)开头的变量或函数是一个私有变量或函数,表示该变量或函数应该在类的内部访问,而不应在类的外部直接访问.这不是强制的,可以在外部访问单下划线开头的变量和函数,但是规范上这样 ...

  6. python中变量和函数的区别_关于python中带下划线的变量和函数 的意义

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  7. python中变量和函数的区别_python中带下划线的变量和函数的意义

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  8. 【C++】对象实例化/成员函数/成员变量的内存管理

    文章目录 1. 对象实例化的内存管理 总结 2.C++成员函数在内存中的存储方式 3.C++类的实例化对象的大小之sizeof() 实例一: 实例二: 实例三: 实例四: 实例五: 实例六: 实例七: ...

  9. C++成员变量指针和成员函数指针【The semantics of funcitons】

    原文:https://blog.csdn.net/laojiu_/article/details/68946915 (原文有笔误) 1. #include <cstdio> #includ ...

  10. C++ const成员变量和成员函数

    const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字.初始化 const 成员变量只有一种方法,就是通过构造函数的初始化列表. co ...

最新文章

  1. 一份火爆全网的刷题笔记分享!offer 到手!
  2. matlab里数组的赋值,arrays – MATLAB结构赋值数组
  3. 4KB/2MB/1GB 4级/5级分页模式下的线性地址翻译以及CR3
  4. vue 子页面调用父页面的参数_Flutter子组件调用父组件方法修改父组件参数
  5. 随想录(用好红黑树)
  6. 开奖及送书|《Vue.js权威指南》
  7. LeetCode:10.regular-expression-matching(正则式表达)
  8. 两种include方式及filter中的dispatcher解析
  9. 最新友盟6.1.1集成遇到的坑,自定义分享界面实现(跳转控制器做分享)
  10. 2.啊哈!算法 --- 一大波数正在靠近——栈、队列、链表
  11. ARGOX 力象 OS-214Plus 条码打印机 B/S 打印
  12. 金蝶K3销售价格控制模块探讨
  13. 配电站房可视化巡检智能监控系统
  14. 计算机cad标题栏快捷键,CAD标题快捷键
  15. 蒟蒻的单调队列orz,真的蒻
  16. 大数据技术基础实验十三:Kafka实验——订阅推送示例
  17. Eclipse+Java+Swing+Mysql实现员工工资管理系统
  18. Android 手电筒的开启方法
  19. OSG场景漫游(一)
  20. DELL电脑开机自检提示please run setup program

热门文章

  1. java中文转Unicode
  2. Android 爱心万花筒简单实现
  3. struts2框架单文件、多文件上传实例详解
  4. AI驱动智能化日志分析 : 通过决策树给日志做聚类分析
  5. 【网络基础】《TCP/IP详解》学习笔记2
  6. 机器学习技法总结(六)Decision Tree Hypothesis
  7. Python 中非常狗的一个坑(在 `a={1:2},`后面多了一个逗号,自动被判为 tuple 类型了)
  8. C#笔记12 自定义集合和常用集合
  9. Objective-C(9)内存管理之ARC
  10. java中反复使用代码_Java代码复用规则