类成员的访问方式

  1. #!/usr/bin/env python
  2. # _*_coding:utf-8 _*_
  3.  
  4. class pepole(object):
  5.  
  6. '''This is __doc__ information!!!'''
  7.  
  8. country = "CHINA" #静态字段 存在类里
  9. __city = "BeiJing" #私有静态字段
  10.  
  11. def siyou(self): #私有字段在内部设置方法可以访问
  12. return pepole.__city
  13.  
  14. def __init__(self,name,age,weight):
  15. self.name = name
  16. self.age = age #普通字段,动态字段,对象字段 存在对象里
  17. self.weight = weight
  18. self.__name2 = "FUCK" #私有普通字段,通过内部间接访问,也可通过特殊方法访问
  19.  
  20. def __call__(self, *args, **kwargs):
  21. print 'This is __call__!!!'
  22.  
  23. def func(self): #括号里至少一个参数,可以多个
  24. print self.__name2 #内部简介访问私有字段
  25. return "123"
  26.  
  27. def __infunc(self): #私有方法,通过内部简介访问
  28. print "This is __infunc!"
  29.  
  30. def run_infunc(self): #通过内部间接的访问私有方法
  31.  
  32. self.__infunc()
  33.  
  34. @classmethod #类方法
  35. def class_func(cls): #括号里只能有一个参数 cls
  36. return "class_method"
  37.  
  38. @staticmethod #静态方法括号里不需要参数(),可以有个多参数
  39. def sts():
  40. print "This is staticmethod"
  41.  
  42. @staticmethod #静态的私有方法,属于类,内部间接访问
  43. def __static_func(): #静态方法括号里不需要参数(),可以有个多参数
  44. print "This is __static_func"
  45.  
  46. def run_static(self): #简介访问静态私有方法
  47. pepole.__static_func()
  48.  
  49. @property #属性把一个方法伪造成一个字段、一个属性,像字段那样的属性而不是一个功能
  50. def att(self): #只能有一个self参数
  51. return "property"
  52.  
  53. def __str__(self):
  54. return "This is __str__"
  55.  
  56. #class Son(pepole): #继承people的派生类,不能拿到父类中的私有方法或字段
  57. # def show(self):
  58. #print pepole.__city
  59. # pass
  60.  
  61. obj = pepole("chenchao",18,70)
  62.  
  63. print obj.__doc__#查看类里的注释信息
  64.  
  65. obj() #执行__call__ 方法 在对象的后面加()
  66.  
  67. printobj.country #执行静态字段
  68.  
  69. print obj.name #执行字段self.name = "chenchao"
  70.  
  71. print obj.siyou() #内部访问间接的调用私有字段 __city = "Beijing"
  72.  
  73. print obj.func() #执行普通方法 def func(self):
  74.  
  75. print pepole.class_func() #类方法 调用类方法 @classmethod
  76.  
  77. pepole.sts() #调用静态方法 @staticmethod
  78.  
  79. print obj.att #执行属性的方法,不带括号 @property
  80.  
  81. obj.run_infunc() #执行私有方法 (间接访问) def __func_method()
  82.  
  83. obj.run_static() #执行静态的私有方法(间接访问)
  84.  
  85. print pepole.__dict__ #获取类的成员,即:静态字段,方法
  86.  
  87. print obj.__dict__ #获取obj对象的成员 普通字段,私有普通字段
  88.  
  89. print obj #类中定义了__str__方法,打印对象默认输出方法的返回值
  90. print str(obj) #自动去类中找__str__方法并得到返回值
  91.  
  92. from test import pepole
  93.  
  94. obj2 = pepole("zhangsan",22,66)
  95.  
  96. print obj2.__module__ #表示当前操作的对象在那个模块
  97. print obj2.__class__ #表示当前操作的对象的类是什么
  98.  
  99. print obj._pepole__name2 #特殊方法访问对象中的私有普通字段
  100. print pepole._pepole__city #特殊方法访问类中的私有静态字段
  101. obj._pepole__infunc() #特殊方法访问类中的私有方法
  102. #obj2 = Son()
  103. #obj2.show() #如果是继承的关系,那么派生类不能访问父类中的私有方法或私有字段
  104.   

  

isinstance()  issubclass()

  1. #!/usr/bin/env python
  2. # _*_coding:utf-8 _*_
  3.  
  4. a = 10
  5.  
  6. class A():
  7. print "This is class A"
  8.  
  9. class B(A):
  10. print "This is class B"
  11.  
  12. w = B()
  13.  
  14. print isinstance(w,B) #True 判断对象w 是否是类B的对象
  15. print isinstance(w,A) #True 类的基类也可行
  16. print isinstance(a,int) #True
  17.  
  18. print issubclass(B,A) #True 判断B是A的派生类或 A是B的基类
  19. print isinstance(B,int) #False
isinstance(obj=对象, cls=类)           
检查obj是否是类 cls 的对象       is instance :实例
 
 
issubclass(sub=子类, super=父类)
检查sub类是否是 super 类的派生类   is subclass:子类

python-面向对象(四)——类成员的访问方式汇总的更多相关文章

  1. python面向对象(二)——类成员

    Python面向对象    类成员 1.字段         普通字段    属于对象         静态字段    属于类   2.方法 普通方法   触发者是对象    括号里至少一个参数 se ...

  2. python 面向对象和类成员和异常处理

    python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...

  3. Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass

    Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...

  4. C++学习之路—继承与派生(一):基本概念与基类成员的访问属性

    (本文根据<c++程序设计>(谭浩强)总结而成,整理者:华科小涛@http://www.cnblogs.com/hust-ghtao,转载请注明) 1   基本思想与概念 在传统的程序设计 ...

  5. Python 面向对象之一 类与属性

    Python 面向对象之 类与属性 今天接触了一下面向对象,发现面向对象和之前理解的简直就是天壤之别,在学Linux的时候,一切皆文件,现在学面向对象了,so,一切皆对象. 之前不是一直在学的用面向函 ...

  6. C++ 派生类成员的访问属性

    派生类成员的访问属性: C++继承方式总共分为以下几种:public.private.protected三种(它们直接影响到派生类的成员.及其对象对基类成员访问的规则).(1)public(公有继承) ...

  7. Python 入门 之 类成员

    Python 入门 之 类成员 1.类的私有成员: 私有: 只能自己拥有 以 __ 开头就是私有内容 对于每一个类的成员而言都有两种形式: - 公有成员,在任何地方都能访问 - 私有成员,只有在类的内 ...

  8. Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系

    Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...

  9. python学习day20 面向对象(二)类成员&成员修饰符

    1.成员 类成员 类变量 绑定方法 类方法 静态方法 属性 实例成员(对象) 实例变量 1.1实例变量 类实例化后的对象内部的变量 1.2类变量 类中的变量,写在类的下一级和方法同一级. 访问方法: ...

随机推荐

  1. ubuntu上 安装 基于sphinx 的 coreseek 全文搜索

    原生sphinx不支持中文, sphinx-for-chinese匹配中文时也不返回结果 ,真纠结,  最好试了 coreseek,这个能正确返回结果了, 所以记录一下 1 http://www.co ...

  2. 配置trac

    1. enable apache mod_auth_digest 2. 设置Location

  3. vs2005用正则表达式统计有效代码行数

    正则表达式:^:b*[^:b#/]+.*$ 需要注意:#开头和/开头或者空行都不计入代码量. 如果需要只统计代码文件的代码量,可以按住Ctrl+Shift+F之后选择查找文件的类型. Form:htt ...

  4. 纯原生js移动端日期选择插件

    最近在项目上需要使用日期选择插件,由于是移动端的项目,对请求资源还是蛮节约的,可是百度上一搜,诶~全是基于jquery.zepto的,本来类库就很大,特别像mobiscroll这种样式文件一大堆又丑又 ...

  5. node 通过mongoose实现 mongodb的增删改

    node 通过mongoose实现 mongodb的增删改   新建文件test.js 内容如下:   var mongoose = require('mongoose') , Schema = mo ...

  6. 关于OA中权限越级的问题

    最近被人问了一个问题, 在OA中我, 经理出差了,下属需要用到 经理的权限,应该怎么处理. 这个问题比较简单,大神,请指点一下. 一开始 ,我就被搞懵了. 我的回答是: 经理出差之前赋给权限就可以了. ...

  7. CommonsChunkPlugin的一些总结

    CommonsChunkPlugin 官方文档地址 https://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin new ...

  8. 关于OJ的输入和输出(转)

    ACM竞赛之输入输出以下内容来源于互联网.在ACM程序设计竞赛中,一道题目的所有测试数据是放在一个文本文件中,选手将一道题目的程序提交给评判系统运行,程序从该文件中读取测试数据,再把运行结果输出到另一 ...

  9. SEVERE: Error listenerStart

    转载:http://blog.sina.com.cn/s/blog_43eb83b90102e2k6.html# 今天启动Tomcat启动不了,报以下错:org.apache.catalina.cor ...

  10. 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】

    转的别人的 看到很多童鞋问到,为什么每次都返回数量等于0?? 其实有童鞋已经找到原因了,原因是你在 ItunesConnect 里的 “Contracts, Tax, and Banking”没有完成 ...