类成员的访问方式

#!/usr/bin/env python
# _*_coding:utf-8 _*_ class pepole(object): '''This is __doc__ information!!!''' country = "CHINA" #静态字段 存在类里
__city = "BeiJing" #私有静态字段 def siyou(self): #私有字段在内部设置方法可以访问
return pepole.__city def __init__(self,name,age,weight):
self.name = name
self.age = age #普通字段,动态字段,对象字段 存在对象里
self.weight = weight
self.__name2 = "FUCK" #私有普通字段,通过内部间接访问,也可通过特殊方法访问 def __call__(self, *args, **kwargs):
print 'This is __call__!!!' def func(self): #括号里至少一个参数,可以多个
print self.__name2 #内部简介访问私有字段
return "123" def __infunc(self): #私有方法,通过内部简介访问
print "This is __infunc!" def run_infunc(self): #通过内部间接的访问私有方法 self.__infunc() @classmethod #类方法
def class_func(cls): #括号里只能有一个参数 cls
return "class_method" @staticmethod #静态方法括号里不需要参数(),可以有个多参数
def sts():
print "This is staticmethod" @staticmethod #静态的私有方法,属于类,内部间接访问
def __static_func(): #静态方法括号里不需要参数(),可以有个多参数
print "This is __static_func" def run_static(self): #简介访问静态私有方法
pepole.__static_func() @property #属性把一个方法伪造成一个字段、一个属性,像字段那样的属性而不是一个功能
def att(self): #只能有一个self参数
return "property" def __str__(self):
return "This is __str__" #class Son(pepole): #继承people的派生类,不能拿到父类中的私有方法或字段
# def show(self):
#print pepole.__city
# pass obj = pepole("chenchao",18,70) print obj.__doc__#查看类里的注释信息 obj() #执行__call__ 方法 在对象的后面加() printobj.country #执行静态字段 print obj.name #执行字段self.name = "chenchao" print obj.siyou() #内部访问间接的调用私有字段 __city = "Beijing" print obj.func() #执行普通方法 def func(self): print pepole.class_func() #类方法 调用类方法 @classmethod pepole.sts() #调用静态方法 @staticmethod print obj.att #执行属性的方法,不带括号 @property obj.run_infunc() #执行私有方法 (间接访问) def __func_method() obj.run_static() #执行静态的私有方法(间接访问) print pepole.__dict__ #获取类的成员,即:静态字段,方法 print obj.__dict__ #获取obj对象的成员 普通字段,私有普通字段 print obj #类中定义了__str__方法,打印对象默认输出方法的返回值
print str(obj) #自动去类中找__str__方法并得到返回值 from test import pepole obj2 = pepole("zhangsan",22,66) print obj2.__module__ #表示当前操作的对象在那个模块
print obj2.__class__ #表示当前操作的对象的类是什么 print obj._pepole__name2 #特殊方法访问对象中的私有普通字段
print pepole._pepole__city #特殊方法访问类中的私有静态字段
obj._pepole__infunc() #特殊方法访问类中的私有方法
#obj2 = Son()
#obj2.show() #如果是继承的关系,那么派生类不能访问父类中的私有方法或私有字段
  

  

isinstance()  issubclass()

#!/usr/bin/env python
# _*_coding:utf-8 _*_ a = 10 class A():
print "This is class A" class B(A):
print "This is class B" w = B() print isinstance(w,B) #True 判断对象w 是否是类B的对象
print isinstance(w,A) #True 类的基类也可行
print isinstance(a,int) #True print issubclass(B,A) #True 判断B是A的派生类或 A是B的基类
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. PHP问题

    /usr/bin/ld: cannot find -lltdlcollect2: ld returned 1 exit statusmake: *** [libphp5.la] 错误 1 缺少libt ...

  2. BufferedReader、FileReader、FileInputStream的区别

    一.BufferReader BufferedReader   由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取分行文本很适合,BufferedReade ...

  3. HTML注释的一些规范

    HTMl里的一些注释符号 1.bady,head内部的注释:<!--放注释内容--> 2.css样式的注释:/*放注释的内容*/ 3.javascript注释 单行注释://放注释的内容 ...

  4. ajax GET和POST请求web api 的几种方式

    GET请求 1.无参数get请求 一般get请求有两种写法,一种是 $.get()   一种是$.ajax({type:"get"}), 我个人比较喜欢用后者. 下面例子主要是ge ...

  5. jquery 之事件 多库共存(noConflict)

    /*jquery 之 简单事件jquery 与其它库共存,提供了 .noConflict() 方法,用法如下<script src="jquery 库"><scr ...

  6. 上传文件到服务器端后进一步推送到sftp服务器

    扩展安装 要想sftp服务端发送文件,就需要php脚本具有作为ssh客户端的能力,所以需先为php安装如下扩展 openssl openssl-dev libssh php ssh 扩展 按照下面的命 ...

  7. Centos开启FTP及用户配置

    vsftpd作为FTP服务器,在Linux系统中是非常常用的.下面我们介绍如何在centos系统上安装vsftp. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  8. 查看sqlserver数据库的端口号

    最近正在用sqlserver作为java的数据库进行开发,在写连接字符串的时候,想起一个问题,怎么查找sqlserver的端口号呢?有两种方法 1,用存储过程 --查询端口号exec sys.sp_r ...

  9. Django下TemplateDoesNotExist 异常的解决方法:

    在settings中添加代码如下获取templates路径: import os import os.path BASE_DIR = os.path.dirname(os.path.dirname(_ ...

  10. Essential Sublime Text Plugins

    Essential Sublime Text Plugins Add some killer tools to your arsenal. View them all at /repo/sublime ...