类相关的知识

在python2中的区分:

经典类:

class School:
pass

新式类:

class School(object):
pass

在python3中以上两种均为新式类

属性:

  • 数据属性:就是变量
  • 函数属性:就是函数,在面向对象里通常称为方法

注:类和对象均用点来访问自己的属性

类的属性

数据属性即变量,类的定义与函数又及其相似,其实可以用函数的作用域来理解类的属性调用

类的数据属性:

class School:
Teacher = "老王"
print(School.Teacher)

类的函数属性(一般称为方法):

class School:
Teacher = "老王"
def Examination(self):
print("%s的班级正在考试"%self)
School.Examination("alex")

查看类属性:

查看类属性的两种方式:

  1. dir(类名) 查出的是一个名字列表
  2. 类名.__dict__ 查出的是一个字典,key是属性名,value是属性值

#注意:类名加点调用自己的属性实际上就是到属性字典里去找东西

class School:
Teacher = "老王"
def Examination(self):
print("%s的班级正在考试"%self)
print(dir(School)) #查看类的属性
print(School.__dict__) #查看类的属性字典
print(School.Teacher)#同print(School.__dict__["Teacher"]) 调用数据属性
School.Examination("alex")#同School.__dict__["Examination"]("alex") 调用函数属性

特殊的类属性:

class School:
"""
文档
"""
Teacher = "老王"
def Examination(self):
print("%s的班级正在考试"%self)
print(School.__name__) #查看类名
print(School.__doc__) #查看文档
print(School.__base__) #查看类的第一个父类
print(School.__bases__) #查看类所有父类构成的元组
print(School.__dict__) #查看类的属性
print(School.__module__) #查看类所在哪个模块
print(School.__class__) #实例School对应的类(仅新式类中)

对象相关知识

对象是由类实例化而来,实例化结果成为一个实例或者称作一个对象

实例化:

class School:
"""
文档
"""
Teacher = "老王"
def Examination(self):
print("%s的班级正在考试"%self)
School() #类名加上括号就是实例化(可以理解函数运行的返回值就是一个实例)

实例属性:

class School:
"""
这是一个学校类
"""
dang = "dang"
#实例化,init函数不可以有返回值,返回值为空
def __init__(self,name,addr,type):
self.mingzi = name #p1.mingzi = name
self.dizhi = addr #p1.dizhi = addr
self.leixing = type#p1.leixing = type
#考试
def Examination(self):
print("%s正在考试"%self.mingzi)
#招生
def Recruit_students(self):
print("%s正在招生"%self.mingzi)
person = School("oldboy","沙河","私立")
person.Examination()
"""
1、实例化的过程本质上就是调用__init__的运行
2、self就是实例本身=person
3、class会自动帮__init__返回值
4、实例只有数据属性,print(person.__dict__)
5、实例调用函数属性,实际上调用的是类的函数属性,person.Examination()
6、print(person.dang)跟函数作用域一样,在自己的作用域找不到会去上一层找
7、类有数据属性和函数属性,实例只有数据属性
8、实例调用函数属性.class会帮你把实例本身传给函数
"""

python之类与对象的属性的更多相关文章

  1. python 类和对象的属性

    python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性 ...

  2. python动态获取对象的属性和方法 (转载)

    首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...

  3. python动态获取对象的属性和方法

    http://blog.csdn.net/kenkywu/article/details/6822220首先通过一个例子来看一下本文中可能用到的对象和相关概念.01     #coding: UTF- ...

  4. Python深入03 对象的属性

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribut ...

  5. python动态获取对象的属性和方法 (转)

    转自未知,纯个人笔记使用 首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): ...

  6. python 学习笔记7(类/对象的属性;特性,__getattr__)

    27. 属性的__dict__系统 1)对象的属性可能来自: 其类的定义,叫做类属性 继承父类的定义 该对象实例定义(初始化对象时赋值),叫做对象属性 2)对象的属性存储在对象的 __dict__ 属 ...

  7. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

  8. Python脚本控制的WebDriver 常用操作 <十七> 获取测试对象的属性及内容

    测试用例场景 获取测试对象的内容是前端自动化测试里一定会使用到的技术.比如我们要判断页面上是否显示了一个提示,那么我们就需要找到这个提示对象,然后获取其中的文字,再跟我们的预期进行比较.在webdri ...

  9. 非常易于理解‘类'与'对象’ 间 属性 引用关系,暨《Python 中的引用和类属性的初步理解》读后感

    关键字:名称,名称空间,引用,指针,指针类型的指针(即指向指针的指针) 我读完后的理解总结: 1. 我们知道,python中的变量的赋值操作,变量其实就是一个名称name,赋值就是将name引用到一个 ...

随机推荐

  1. linux笔记常用命令

    LINUX成长日记 1.本人工作实例:(将一台服务器的数据库复制到另外一台服务器上) scp -r -P 8351 /bak_mysql/sz_b2b2c201705180200.sql root@1 ...

  2. 序列模型(2)-----循环神经网络RNN

    一.RNN的作用和粗略介绍: RNN可解决的问题: 训练样本输入是连续的序列,且序列的长短不一,比如基于时间的序列:一段段连续的语音,一段段连续的手写文字.这些序列比较长,且长度不一,比较难直接的拆分 ...

  3. GDI 设备环境句柄(2)

    WM_PAINT 消息的触发 Windows 程序在以下情况会触发WM_PAINT消息: 窗口被移动导致被遮盖部分暴露出来 用户调整窗口的大小(当窗口类的 style 字段被设置为 CS_HREDRA ...

  4. [置顶] HTTP 幂等性概念和应用

    转自:http://coolshell.cn/articles/4787.html HTTP 幂等性概念和应用 [ 感谢 Todd 同学 投递本文 ] 基于 HTTP 协议的 Web API 是时下最 ...

  5. web内置对象

    内置对象,宿主对象,自定义对象的区别?     内置对象:         系统所提供的对象:Object,Array,Math,Date等等.     宿主对象:         JS所运行的环境提 ...

  6. 前端框架Bootstrap简单介绍

    下载: 解压之后: 把这些文件拷贝到项目中 页面使用时  只需要引入: 然后我们就可以参考官网来设计需要的前端页面了 设计一个按钮:button 只需要标明css样式中使用的类  下面就是现实效果:

  7. HDU5976 Detachment

    /* HDU5976 Detachment http://acm.hdu.edu.cn/showproblem.php?pid=5976 数论 等差数列 * * */ #include <cst ...

  8. 在centOS6.5 上安装使用pipework

    需求:镜像生成了2个含有tomcat的容器,用nginx进行负载均衡.但是容器重启后ip会自动改变...所以使用pipework进行分配静态ip pipework安装 OS:centos6.5 第一步 ...

  9. hdoj--2803--The MAX(水题)

    The MAX Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  10. 匹配替换指定文本为html标签

    最近看了一道前端面试题,是关于正则的,用尽可能低复杂度的函数,匹配替换指定文本为html标签,题目是这样的: 特定语法匹配替换 说明:匹配字符串中形如 =g文字文字= 的语法,并将相应部分转化为对应的 ...