类相关的知识

在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. C# List源码分析(一)

    事件原因,之前在公司写代码的时候,带我的师傅建议我对List的长度最好在初始化的时候进行优化,这样对GC更加友好,所以就有了这个文章,来理解下List 容量自适应的实现. List 继承于IList, ...

  2. C# 日期格式

    # DateTime日期格式化 在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1 ...

  3. Java基础学习总结(63)——Java集合总结

    数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...

  4. Qt QImage与OpenCV Mat转换

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51029382 应一个朋友的要求,整理总 ...

  5. 最短路&查分约束

    [HDU] 1548 A strange lift 根蒂根基最短路(或bfs)★ 2544 最短路 根蒂根基最短路★ 3790 最短路径题目 根蒂根基最短路★ 2066 一小我的观光 根蒂根基最短路( ...

  6. iOS动画之美丽的时钟

    1.终于效果图 2.实现思路 在ios中默认是绕着中心点旋转的,由于锚点默认在图层的中点,要想绕着下边中心点转,须要改变图层锚点的位置. 依据锚点.设置position坐标.为时钟的中点. 思考秒针旋 ...

  7. Hit 2255 Not Fibonacci

    今天下午刚起来眼睛就比較涨,,并且还有点恶心,唉.结果一直不在状态.并且这个题太坑了.. .. 点击此处即可传送 Hit 2255 Maybe ACMers of HIT are always fon ...

  8. html5的postmessage实现js前端跨域訪问及调用解决方式

    关于跨域訪问.使用JSONP的方法.我前面已经demo过了.详细见http://supercharles888.blog.51cto.com/609344/856886,HTML5提供了一个很强大的A ...

  9. 自己定义Android Dialog

    private void showDialog() { mDialog = new Dialog(this); mDialog.setCanceledOnTouchOutside(true); Win ...

  10. WebService CXF学习:复杂对象传递(List,Map)

    转自:https://blog.csdn.net/z69183787/article/details/35988335 第一步:创建存储复杂对象的类(因为WebServices的复杂对象的传递,一定要 ...