Python之路,day7-Python基础
- os.system 输出命令结果到屏幕,返回命令执行状态
os.popen("dir").read()#会保存命令的执行结果输出- py2.7
commands
commands.getstatusoutput("dir")
#windows不好用
#linux可以- subprocess
==================================
面向对象- 模板造对象
- 一.类的特性
- 1.封装
防止数据被随意修改
使外部程序不需要关注对象内部的构造(逻辑结构),只需要通过此对象对外提供的接口进行直接访问即可
- class Dog(object):
- def __init__(self,name,food):#构造函数,构造方法,==初始化方法
- self.NAME = name
- self.FOOD = food
- self.__getj = 'big'
- self.__test = ''
- def sayhi(self):#类的方法(类的具体方法)
- print("hello,ni shuo de dui.",self.NAME)
- def get_getj(self):
- return self.__getj
- def eat(self):
- print("%s is eating %s"%(self.NAME,self.FOOD))
- def __del__(self):
- print("del...run....")
- d = Dog("a1",'haochide')#Dog(d,"a1") #实例化后产生的对象叫实例(当前类的实例)
- d2 = Dog("a2",'pi')
- d.sayhi()
- d2.sayhi()
- d.eat()
- d2.eat()
- print(d.get_getj())
- print(d._Dog__test)
- def shot2():
- print("buhuia")
- d.sayhi = shot2
- d.sayhi()
- # print(d.test)
- 2.继承
通过父类---》子类的方式 实现不同角色的共同点和不同点 以最小代码量的方式实现- 类 ----》实例化----》实例对象
- __init__构造函数
- self.name = name #属性,成员变量,字段
- def sayhi() #方法,动态属性
- 公有属性
在类里定义的属性,任何对象都可以访问- 私有属性
__private_attr_name = value- def get_heart(self) #对外部提供只读访问接口
return self.__heart- r1._Role__heart 强制访问私有属性
- 析构方法
- 继承
- 多继承
- class Person(object):
- def __init__(self,name,age):
- self.name = name
- self.age = age
- self.sex = 'male'
- def talk(self):
- print("person is talk",self.name)
- class BlackPerson(Person):
- def __init__(self,name,age):
- Person.__init__(self,name,age)
- print(self.sex)
- def walk(self):
- print("is walk")
- b = BlackPerson('liusijia',10)
- b.talk()
- 新式类vs经典类
SchoolMember.__init__(self,name,age,sex) #经典类写法
super(Teacher,self).__init__(name,age,sex)#新式类写法- class Person(object):
super(Person)- class Person:#经典类
ParentClass.__init__
- class SchoolMember(object):
- '''学校成员基类'''
- member = 0
- def __init__(self,name,age,sex):
- self.name = name
- self.age = age
- self.sex = sex
- self.enroll()
- def enroll(self):
- '''注册'''
- print("just encolled a new school member %s"%self.name)
- SchoolMember.member +=1
- def tell(self):
- '''个人信息'''
- print('------info:%s-----'%self.name)
- for k,v in self.__dict__.items():
- print('\t',k,v)
- def __del__(self):
- print("开除[%s]..."%self.name)
- SchoolMember.member -=1
- class School(object):
- '''学校类'''
- def open_branch(self,addr):
- print("openning branch in %s"%addr)
- self.addr = ""
- class Teacher(SchoolMember,School):
- '''讲师类'''
- def __init__(self,name,age,sex,salary,course):
- SchoolMember.__init__(self,name,age,sex) #经典类写法
- super(Teacher,self).__init__(name,age,sex)#新式类写法
- self.salary = salary
- self.course = course
- # self.enroll()
- def teaching(self):
- print("Teacher[%s]is teaching[%s]"%(self.name,self.course))
- class Student(SchoolMember):
- def __init__(self,name,age,sex,course,tuition):
- SchoolMember.__init__(self,name,age,sex)
- self.course = course
- self.tuition = tuition
- self.amount = 0
- def pay_tuition(self,amount):
- print("student[%s]has just paied [%s]"%(self.name,amount))
- self.amount += amount
- t1 = Teacher("a1",11,"F*M",3000,"python")
- s1 = Student("a2",14,"NA","py",3000)
- s2 = Student("a3",13,"NA","py",3000)
- print(SchoolMember.member)
- del s1
- print(SchoolMember.member)
- t1.tell()
- s2.tell()
- 3.多态
- 静态方法
- 类方法
- 属性方法
Python之路,day7-Python基础的更多相关文章
- Python之路,Day7 - Python基础7 面向对象
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...
- Python之路,Day4 - Python基础4 (new版)
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- Python之路,Day1 - Python基础1
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1(转载Alex)
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1 --转自金角大王
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- Python之路,Day1 - Python基础1 介绍、基本语法、流程控制
本节内容 1.python介绍 2.发展史 3.python 2.x or python 3.x ? 4.python 安装 5.第一个程序 Hello World 程序 6.变量 7.用户输入 8. ...
- Python之路Day7
第7天主要是面向对象的内容. 学到现在越来越吃力了,从上节课开始博客就没时间写了,看看别人写的博客都那么棒.又想起了那句话比你牛逼的人都在努力,你却在放羊...唉,我写作业的效率有点低,以后得抓紧时间 ...
- Python之路:Python简介
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间他为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 ...
- Python之路:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- Python之路-初识python及环境搭建与测试(Python安装、Anaconda安装、PyCharm安装)
一.认识Python 起源 Python的作者是著名的“龟叔”Guido van Rossum,他希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻 ...
随机推荐
- tomcat+nginx简单实现负载均衡
1.环境准备 在前面的博客中我已经安装好nginx和一台tomcat了.现在就在加一台tomcat tomcat1: /apps/tomcat/tomcat1/apache-tomcat-7.0.6 ...
- HyperV采用硬盘拷贝的方式迁移虚拟机后的问题处理
公司有一台RSA认证服务器,是在windows 2008 R2下的虚拟机,最近总是出现服务中断的情况,考虑到宿主机性能较差,于是想迁移到新的服务器中. 本想通过SCVMM来迁移,但因功能不可用,所以采 ...
- 如何修复Outlook 2007源文件.PST及性能优化补丁
kb961752 微软发布了改善 Outlook 2007 个人数据文件性能的补丁,该补丁未来将会集成于 SP2 中,但是现在对于SP1用户可以提前得到它. 获取地址: http://suppor ...
- https适配
http://www.jianshu.com/p/f312a84a944c http://www.2cto.com/kf/201611/570823.html http://www.cnblogs.c ...
- Spring中的JDBCTemplate
src\dayday\JDBCTestTest package dayday;import com.sun.org.apache.xalan.internal.xsltc.compiler.Templ ...
- JS中setInterval与setTimeout的区别
JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操作. setTimeout("function& ...
- clojure 之 hello world
1. 安装Leiningen 2. lein new app bar 3. lein run Hello, World!
- CTE
Why use CTE: Improve code readability Breaking up complex queries into smaller blocks Execution Scop ...
- 12、c#中事务及回滚
public void UpdateContactTableByDataSet(DataSet ds, string strTblName) { try { SqlDataAdapter myAdap ...
- flash上传控件跨域
工作中需要使用百度开发的ueditor,但服务器部署中前端代码和后端代码在不同的域名下,现已解决的前端调后端代码的跨域问题.可是,ueditor中的上传图片flash控件也涉及跨域问题,经过查找发现可 ...