python 中面向对象编程简单总结2
1.python中继承的特点:
(1)总是从一个类继承,默认为object类
(2)不要忘记调用super.__init__方法来初始化父类的方法
def __init__(self,args):
super(Subclass,self).__init__(args)
pass
简单例子
class Person(object):
def __init__(self,name,gender):
self.name = name
self.gender = gender
class Student(Person):
def __init__(self,name,gender,score):
#super(Student,self)方法调用返回当前类继承的父类
#如果没有下面的调用,那么Student类中就没有name和gender属性
super(Student,self).__init__(name,gender)
self.score = score
s = Student("roger","male",99)
print s.name,s.gender,s.score
2. 使用isinstance(obj,class)来判断obj是否是class类的一个实例
3.继承和多态需要注意的地方
(1)python是动态语言,动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
(2)如果实例中没有相应的方法和属性,那么它会顺着继承链向上寻找。如果是方法,它就会调用最近的方法;如果是属性,就会在实例上绑定一个属性。
(3)多态概念一致,任何能引用父类的地方,一定能使用子类
4.定义类对象之后获取相关属性
(1)type(obj) 返回变量类型
(2) dir(obj) 返回变量所有属性
(3)getattr(obj,attrname) 获取属性: attrname
(4)setattr(obj,attrname,attrvalue): 设置新的属性
(5)Python 中的变长参数:*args(只含值), **kwargs(包含键值对),注意到两者调用上是有区别的。
#coding=utf8
__author__ = 'Administrator'
# 当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值
def fun_var_args(farg, *args):
print 'args:', farg
for value in args:
print 'another arg:',value
fun_var_args(1, 'two', 3, None)
class Person(object):
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
for k, v in kw.iteritems():
setattr(self, k, v)
p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course
python 中面向对象编程简单总结2的更多相关文章
- python 中面向对象编程简单总结3--定制类
声明:资源来自慕课网python学习课程,以下只是个人学习总结,仅供参考 1.Python类的特殊方法 特征:以 __ 开头并结尾的方法,比如用于print的__str__() , __getatt ...
- python 中面向对象编程简单总结1
1.类的定义方式 class ClassName(object): #object 表示继承的类,默认为object pass 类的使用类似函数的调用,也可以认为是调用了一次模板来创建一个实例. 2. ...
- python 中面向对象编程的几个概念
Python super() 函数 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会 ...
- 可爱的 Python : Python中函数式编程,第一部分
英文原文:Charming Python: Functional programming in Python, Part 1 摘要:虽然人们总把Python当作过程化的,面向对象的语言,但是他实际上包 ...
- Python之面向对象编程学习
不知不觉,学到了python的面向对象编程思想.今天我们来讨论下面向对象编程的思想. 顾名思义,面向对象,就是面向于对象,这里所说的对象不是你现实生活中你的女朋友,你的老婆,你的爱人,在编程的世界里面 ...
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- Python:面向对象编程3 定制类(有更新)
Python:面向对象编程3 定制类(有更新) ⚠️本文主要内容为对Data model相关知识点的提取学习记录.(内容来自文档和部分网页教程案例) ⚠️:这个连接指向<流畅的python&g ...
- python中argparse模块简单使用
python中argparse模块简单使用 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2. ...
随机推荐
- Tool:Visual Studio Code
ylbtech-Tool:Visual Studio Code Microsoft在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Ma ...
- docker监控的一点想法
目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路. 1.关于监控的内容 监控宿主机本身 监控宿主机本身还是比较简单的,同其他服务器监控类似,对c ...
- C语言实现Base64编码/解码
Bse64是一种以64个可打印字符对二进制数据进行编码的编码算法.base64在对数据进行编码时以三个8位字符型数据为一组,取这三个字符型数据的ASCII码,然后以6位为一组组成4个新的数据,这4个新 ...
- canvas绘制圆弧
canvas绘制圆弧 方法 anticlockwise为true表示逆时针,默认为顺时针 角度都传的是弧度(弧度 = (Math.PI/180)*角度) arc(x, y, radius, start ...
- Flask之视图(一)
2.关于Flask 知识点 从Hello World开始 给路由传递参数 返回状态码 重定向 正则URL 设置cookie和获取cookie 扩展 上下文 请求钩子 Flask装饰器路由的实现 Fla ...
- django之admin站点
Admin站点 通过使用startproject创建的项目模版中,默认Admin被启用 1.创建管理员的用户名和密码 python manage.py createsuperuser 然后按提示填写用 ...
- git commit时候出现的问题
git commit 提交的时候,出现*** Please tell me who you are. git config --global ...问题 1 $ git commit -a -m 'v ...
- Webstorm2018破解笔记
参考链接: (1)https://www.jb51.net/softs/598714.html 过程步骤 (2)http://idea.lanyus.com/ IntelliJ IDEA 注册 ...
- Linux虚机密码破解
1 重启机器,在机器读秒时按回车键 2 选择要启动的操作系统按 e 3 选择kernel所在行按 e 4 末尾输入空格 single 5 敲回车 在按 b 系统将进入单用户模式 然后 可以 通过 p ...
- Server_id 冲突导致 IO 等待故障
问题描述: 线上添加新的 MySQL Slave 后,服务器异常. 1.show processlist; Queueing master event to the relay log Reconne ...