1.成员
  类里面定义的变量和方法都被称为成员(字段)
  创建对象:
    找类---->开辟空间(__new__)------>__init__()
  变量:
    1.成员变量
    2.类变量
      类名.变量 记住一定要用类名去操作
    可以绑定也可以修改

 1 class StarkConfig(object):
 2     list_display = []
 3     print("类变量的地址:", id(list_display))
 4
 5     def __init__(self):
 6         self.list_display = []
 7         print(id(self.list_display))
 8
 9     def get_list_display(self):
10         self.list_display.insert(0, 33)
11         return self.list_display
12
13
14 s1 = StarkConfig()
15 s2 = StarkConfig()
16 r1 = s1.get_list_display()
17 print(r1)
18 r2 = s2.get_list_display()
19 print(r2)
20 """
21 类变量的地址: 1885633733192
22 1885633733256
23 1885637388936
24 [33]
25 [33]
26 """
27
28 class StarkConfig(object):
29     list_display = []
30     print("类变量的地址:", id(list_display))
31
32     # def __init__(self):
33     #     self.list_display = []
34     #     print(id(self.list_display))
35
36     def get_list_display(self):
37         self.list_display.insert(0, 33)
38         return self.list_display
39
40
41 s1 = StarkConfig()
42 s2 = StarkConfig()
43 r1 = s1.get_list_display()
44 print(r1)
45 r2 = s2.get_list_display()
46 print(r2)
47 """
48 类变量的地址: 2554676732488
49 [33]
50 [33, 33]
51 """

View Code

2.方法:
  1.成员实例方法 加了self的,调用必须用对象去访问
  2.类方法
    当方法需要传递类名的时候.需要类方法。在上方加@classmethod
  3.静态方法 当你的方法不需要传递当前类的对象的时候
    语法规则:在方法上面加@staticmethod
    面试题:静态方法/类方法/实例方法的区别

3.属性:用方法来描述我们的属性信息
    1.@property #表示当前方法是一个属性。方法的返回值就是这个属性的值
    2.这个方法只能有一个参数self
    3.必须有一个返回值

4.私有
  只能在自己类里面访问的
  __方法
  __变量
   __类变量
  都是私有变量,别人访问不到 包括儿子

 1 # 方法属性实例
 2 class Person(object):
 3
 4     def __init__(self, name, gender, hobby, money):
 5         self.name = name
 6         self.gender = gender
 7         self.hobby = hobby
 8         self.__money = money
 9
10     def show(self):
11         print("我有" + str(self.__money) + "元钱")
12         # 私有变量在外面不可直接访问
13
14     @staticmethod
15     def calc(a, b):
16         # 就是一个函数  用不到对象而已
17         return a + b
18
19     @classmethod
20     def classMethod(cls):
21         # 这里面cls是一个类
22         p = cls("小张", "xx", "chifan", 100)
23         print(type(p), id(p))
24
25     @property  # 直接当做一个属性来访问 不需要括号
26     def age(self):
27         return 10
28
29
30 # 关于调用 既然是类方法和静态方法  那么你当然要用类去调用啊
31 # 实例化一个类:1.找类名  2.__new__   3.__init__()
32 p = Person("test", "不详", "睡觉", 1000000000)
33 p.show()
34 print(p.age)
35 print(Person.calc(2, 3))
36 Person.classMethod()
37 """
38 我有1000000000元钱
39 10
40 5
41 <class '__main__.Person'> 2363753049504
42 """

View Code

转载于:https://www.cnblogs.com/gaofeng-d/p/10593010.html

成员/方法/属性/私有相关推荐

  1. Python笔记 · 私有方法、私有属性 单下划线、双下划线

    首先,不同于其他编程语言,Python中不存在真正意义上的"私有方法/属性",Python中所胃的"私有方法"要么基于约定,要么基于编译期的改写(Name Ma ...

  2. python 类 公有属性、私有属性、公有方法、私有方法

    python 类 公有属性.私有属性.公有方法.私有方法 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Int ...

  3. python私有方法应用场景_Python私有属性私有方法应用实例解析

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 ...

  4. Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法

    内置属性 创建类时系统自动创建的属性 # 内置属性:dir(对象),列出所有的内置属性 class Person(object):'''Person类1'''# Person类2__slots__ = ...

  5. java mock私有方法_JMockit Mock 私有方法和私有属性

    前面说过 JMockit 因身处前线,所以简直无不可,本节例子演示 JMockit 怎么 Mock 私有方法和私有属性,示例虽然是静态方法和属性,但因采用的是反射手法,所以这种 Deencapsula ...

  6. 一文搞懂 Python 私有属性 私有方法

    1. 场景定义 私有属性 是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的内部被使用,但不想在外部被访问到这些属性. 即:私有属性是对象不愿意公开的属性. 私有方法 是指在 Py ...

  7. JMockit Mock 私有方法和私有属性

    JMockit Mock 私有方法和私有属性 时间 2014-02-03 15:02:39   隔叶黄莺Unmi Blog 原文  http://unmi.cc/jmockit-mock-privat ...

  8. Python进阶-----面向对象2.0(特有属性和方法与私有属性和方法)

    目录 前言: 1.添加特有属性/方法 示例1:添加特有属性 示例2:添加特有方法 2.私有属性/方法 (1)私有化示例 (2) 私有化属性/方法可以在类的内部使用 (3)强制访问私有化属性/方法 (4 ...

  9. 类的实例方法静态方法类方法属性方法属性

    目录: 分类 实例方法 静态方法 类方法 属性方法 属性 分类: 按照调用方式可以分为3种,实例方法.静态方法.和类方法 实例方法 实例方法只能通过实例对象调用,不能通过类进行调用.实例方法再定义时候 ...

最新文章

  1. class viewController has no initializers解决办法
  2. MySQL 数据类型学习笔记
  3. python 笛卡尔积,排列,组合
  4. 从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
  5. cat命令读取一部分_脚本攻略2 --命令之花
  6. 模版:线段树合并+线段树分裂
  7. 怎么根据输入的n来输入n组数组_【题解一维数组】1106:年龄与疾病
  8. 阿里巴巴四十大盗教你零知识证明
  9. C++中打印可变参数函数输出到控制台
  10. 墨菲定律-感悟甚多,出于程序员用xmind做的
  11. 怎么批量查询银行卡号是哪个银行?
  12. N-Tiers设计系列(二):三层式应用系统架构
  13. 【重识云原生】第四章云网络4.8.4节——OpenStack与SDN的集成
  14. SpannableString字体大小自适应
  15. python中exec是什么意思_Python中的exec()
  16. 物联网技术部培训---贪心算法
  17. 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
  18. SAP PP生产计划体系
  19. 基于Java毕业设计畜牧场信息管理系统源码+系统+mysql+lw文档+部署软件
  20. 域名的外属性价值千金!

热门文章

  1. TextTopicNet:CMU开源无标注高精度自监督模型
  2. 教你些技巧,用 Python 自动化办公做一些有趣的事情 太方便了
  3. 墨子科技成果是计算机,祖国强起来!为2017年这些重大科技成果打call
  4. 重磅更新!YoloV4最新论文!解读yolov4框架
  5. UML顺序图/序列图/时序图
  6. 译文 | 与TensorFlow的第一次接触 第四章:单层神经网络
  7. 上海东海学院计算机,上海东海职业技术学院
  8. java 的进程_windows 启动停止 java进程
  9. java date 转换sql date_java.util.Date和java.sql.Date之间的转换
  10. CentOS 7如何配置yum源