python基础学习笔记5--对象
对象(object)
1.对象(object): 面向对象程序设计重要术语。
对象的特性:多态性、封装性、继承性
>>def add(x,y):
return x+y
对于很多类型的参数都可以用:
>>>add(1,2)
>>>add('Good','Bye')
'GoodBye'
2.所有的Python对象都拥有三个特性:身份,类型和值。
- 任何对象的身份都可以用内建函数:id()来表示;
- 也可以用内建函数type()查看python对象的类型。
3.类(class)
Python中,喜欢用单数名词,并且首字母大写,来描述对象的类。如Bird和Lark.
类的关系:子类—>类<----超类
Subclass, class, superclass
如:百灵鸟类 是鸟类的子类,而鸟类是百灵鸟类的超类。
类的定义后必须先实例化才能使用,类的初始化和函数调用类似。只要使用类名加圆括号的形式就可以初始化一个类。类初始后会产生一个对象
说明:
# >>>a=human() 是human类的实例化
#>>>a是查看对象a
#>>>a.sex 是访问sex属性,a.age是访问age属性
在python中,当创建一个类以后就可以通过类名访问其属性。如果直接使用类名修改其属性,那么将影响已经初始化的对象。
>>>human.age
>>>human.age=23
①创建自己的类:
_metaclass_=type #确定使用新式类
Class Person:
Def setName(self,name): #定义setName方法
Self.name=name
Def geName(self): #特殊的变量:self # 表示对象本身
Return self.name
Def greet(self):
Print “Hello,World! I’m %s.”%self.name
②创建实例
4.对象的特性、函数和方法
1)方法的定义:在类的内部使用def关键字可以为类定义一个方法,注意的是:必须包含一个参数“self”,且“self”必须为第一个参数。
方法将它的第一个参数绑定到所属的实例上。因此这个参数不必提供。
5.类的属性
类的属性实际上是类内部的变量,确切的说:称作类的公有属性。
类的外部属性:类的外部不能对其属性进行操作。以双下划线开始。
>>>class book:
__author=’’
__age=’’
__name=’’
__price=’’
…
>>>a=book()
>>>a.__age #试图访问对象的_age私有属性,结果导致错误。
Python并不直接支持私有方式,而要靠程序员自己把握在外部进行特性修改的时机。毕竟在使用对象之前应该知道该如何使用。但是,可以用一起小技巧达到私有特性的效果。
为了让方法或者特性变为私有(从外部无法访问),只要在它的名字之前加上双下划线即可。
Class Secretive:
Def __inaccessible(self):
Print “Bet you can’t see me…”
Def accessible(self):
Print “The secret message is:”
Self.__inaccessible()
现在___inaccessilbe从外界是无法访问,而在类内部还能使用(比如从accessilbe)访问:
>>>s=Secretive()
>>>s.__inaccessible()
l 类的名称空间:class namespace 表示你把数据保存在变量中,对他们按名称空间进行分组。本身没有任何属性的类。
如:class MyData(object):
pass
下面的两个语句几乎等价:
Def foo(x): return x*x
Foo=lambda x:x*x
这个命名空间(名称空间)可由类内所有成员访问。
>>>class C:
Print”Class C being defined…”
Class C being defined…
上面的代码中,在类作用域内定义了一个可供所有变量(实例)访问的变量,有来计算类的成员数量。注意:init用来初始化所有实例。
指定超类:
子类可以扩展超类的定义,将其它类名写有class语句后的圆括号内可以指定超类:
Class Fliter:
Def init(self):
Self.blocked=[]
Def fliter(self.sequence) :
Return[x for x in sequence if x not in self.blocked ]
Class SPAMFilter(Fliter):
Def init(self):
Self.blocked=[‘SPAM’]
Filter是个用于过滤序列的通用类,事实上它不能过滤任何东西:
>>>f=Fliter()
>>>f.init()
>>>f.filter([1,2,3])
调查继承:
如果想查看一个类是否是另一个的子类,可以使用内建的issubclass函数。
>>>issubclass(SPAMFilter,Filter)
True
构造方法:
在Python中创建一个构造方法很容易,只要把init方法的名字从简单的init修改为魔法版本:__init__即可。构造方法和其它方法不同的地方在于,当一个对象被创建后,会立即调用构造方法。
python基础学习笔记5--对象的更多相关文章
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
- Python基础学习笔记(十三)异常
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...
- Python基础学习笔记(十二)文件I/O
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-files-io.html ▶ 键盘输入 注意raw_input函 ...
- Python基础学习笔记(十一)函数、模块与包
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...
- Python基础学习笔记(九)常用数据类型转换函数
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...
- Python基础学习笔记(六)常用列表操作函数和方法
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...
- Python基础学习笔记(五)常用字符串内建函数
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-strings.html 3. http://www.liaoxu ...
- Python基础学习笔记(三)运算符
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...
随机推荐
- 安卓Xpost框架
http://pcedu.pconline.com.cn/484/4841077_all.html
- cmd正常启动tomcat,而 从eclipse启动出现 404
设置Tomcat的路径,启动Tomcat,先测试一下环境,在浏览器中输入http://127.0.0.1:8080/ 提示 404找不到网页.出现这种问题然后试了一下,tomcat在外面直接启动 然 ...
- C/C++基本数据类型
基本类型 C/C++语言有一组基本类型,对应于计算机的基本存储单元和使用这些单元去保存数据的一些常用方式: 基本数据类型如下: Name Description Size* Range* char C ...
- Linux学习之lsof命令
lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控制协议 ...
- linux杂记(三)linux指令介绍
[root@linux ~]# command [-options] parameter1 parameter2 说明: 最左边的root显示的是[目前使用者的账号],而@之后接的是linux即[主机 ...
- jquery写的tab切换效果 非常简单
自己写的一款 tab切换效果,比较简单,适合新手 <style type="text/css">*{margin:0; padding:0; font-size:12p ...
- IS--A与 Has-a 区别
- hibernate中多对多关联
hibernate中多对多关联 “计应134(实验班) 凌豪” 在关系数据库中有一种常见的关系即多对多关系,例如课程和学生的关系,一个学生可以选择多门课程,同时一门课程也可以被多个学生选择, 因此课程 ...
- [LeetCode]题解(python):010-Regular Expression Matching
题目来源: https://leetcode.com/problems/regular-expression-matching/ 题意分析: 这道题目定义了两个正则表达式规则.’.’代表任意字符,’* ...
- OpenCV学习 3:平滑过度与边缘检测
原创文章,欢迎转载,转载请注明出处 用来记录学习的过程,这个是简单的相关函数的熟悉,内部机制和选择何种选择函数参数才能达到自己的要求还不太清楚,先学者吧..后面会慢慢清楚的. 和前面相比,主 ...