1. os.system 输出命令结果到屏幕,返回命令执行状态
    os.popen"dir").read()#会保存命令的执行结果输出
  2.  
  3. py2.7
    commands
    commands.getstatusoutput("dir")
    #windows不好用
    #linux可以
  4.  
  5. subprocess
    ==================================
    面向对象
  6.  
  7. 模板造对象
  8.  
  9. 一.类的特性
  10.  
  11. 1.封装
    防止数据被随意修改
    使外部程序不需要关注对象内部的构造(逻辑结构),只需要通过此对象对外提供的接口进行直接访问即可
  1. class Dog(object):
  2.  
  3. def __init__(self,name,food):#构造函数,构造方法,==初始化方法
  4. self.NAME = name
  5. self.FOOD = food
  6. self.__getj = 'big'
  7. self.__test = ''
  8. def sayhi(self):#类的方法(类的具体方法)
  9. print("hello,ni shuo de dui.",self.NAME)
  10. def get_getj(self):
  11. return self.__getj
  12. def eat(self):
  13. print("%s is eating %s"%(self.NAME,self.FOOD))
  14. def __del__(self):
  15. print("del...run....")
  16.  
  17. d = Dog("a1",'haochide')#Dog(d,"a1") #实例化后产生的对象叫实例(当前类的实例)
  18. d2 = Dog("a2",'pi')
  19.  
  20. d.sayhi()
  21. d2.sayhi()
  22. d.eat()
  23. d2.eat()
  24. print(d.get_getj())
  25.  
  26. print(d._Dog__test)
  27.  
  28. def shot2():
  29. print("buhuia")
  30.  
  31. d.sayhi = shot2
  32. d.sayhi()
  33. # print(d.test)
  1. 2.继承
    通过父类---》子类的方式 实现不同角色的共同点和不同点 以最小代码量的方式实现
  2.  
  3. ----》实例化----》实例对象
  4.  
  5. __init__构造函数
  6.  
  7. self.name = name #属性,成员变量,字段
  8.  
  9. def sayhi() #方法,动态属性
  10.  
  11. 公有属性
    在类里定义的属性,任何对象都可以访问
  12.  
  13. 私有属性
    __private_attr_name = value
  14.  
  15. def get_heart(self) #对外部提供只读访问接口
    return self.__heart
  16.  
  17. r1._Role__heart 强制访问私有属性
  18.  
  19. 析构方法
  20.  
  21. 继承
  22.  
  23. 多继承
  1. class Person(object):
  2. def __init__(self,name,age):
  3. self.name = name
  4. self.age = age
  5. self.sex = 'male'
  6.  
  7. def talk(self):
  8. print("person is talk",self.name)
  9.  
  10. class BlackPerson(Person):
  11. def __init__(self,name,age):
  12. Person.__init__(self,name,age)
  13. print(self.sex)
  14.  
  15. def walk(self):
  16. print("is walk")
  17.  
  18. b = BlackPerson('liusijia',10)
  19. b.talk()
  1.  
  2. 新式类vs经典类
    SchoolMember.__init__(self,name,age,sex) #经典类写法
    super(Teacher,self).__init__(name,age,sex)#新式类写法
  3.  
  4. class Person(object):
    super(Person)
  5.  
  6. class Person:#经典类
    ParentClass.__init__
  1. class SchoolMember(object):
  2. '''学校成员基类'''
  3. member = 0
  4. def __init__(self,name,age,sex):
  5. self.name = name
  6. self.age = age
  7. self.sex = sex
  8. self.enroll()
  9. def enroll(self):
  10. '''注册'''
  11. print("just encolled a new school member %s"%self.name)
  12. SchoolMember.member +=1
  13.  
  14. def tell(self):
  15. '''个人信息'''
  16. print('------info:%s-----'%self.name)
  17. for k,v in self.__dict__.items():
  18. print('\t',k,v)
  19. def __del__(self):
  20. print("开除[%s]..."%self.name)
  21. SchoolMember.member -=1
  22.  
  23. class School(object):
  24. '''学校类'''
  25. def open_branch(self,addr):
  26. print("openning branch in %s"%addr)
  27. self.addr = ""
  28.  
  29. class Teacher(SchoolMember,School):
  30. '''讲师类'''
  31. def __init__(self,name,age,sex,salary,course):
  32. SchoolMember.__init__(self,name,age,sex) #经典类写法
  33. super(Teacher,self).__init__(name,age,sex)#新式类写法
  34.  
  35. self.salary = salary
  36. self.course = course
  37. # self.enroll()
  38.  
  39. def teaching(self):
  40. print("Teacher[%s]is teaching[%s]"%(self.name,self.course))
  41.  
  42. class Student(SchoolMember):
  43. def __init__(self,name,age,sex,course,tuition):
  44. SchoolMember.__init__(self,name,age,sex)
  45. self.course = course
  46. self.tuition = tuition
  47. self.amount = 0
  48.  
  49. def pay_tuition(self,amount):
  50. print("student[%s]has just paied [%s]"%(self.name,amount))
  51. self.amount += amount
  52.  
  53. t1 = Teacher("a1",11,"F*M",3000,"python")
  54. s1 = Student("a2",14,"NA","py",3000)
  55. s2 = Student("a3",13,"NA","py",3000)
  56.  
  57. print(SchoolMember.member)
  58.  
  59. del s1
  60. print(SchoolMember.member)
  61.  
  62. t1.tell()
  63. s2.tell()
  1. 3.多态
  1. 静态方法
  2.  
  3. 类方法
  4.  
  5. 属性方法

Python之路,day7-Python基础的更多相关文章

  1. Python之路,Day7 - Python基础7 面向对象

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

  2. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  3. Python之路,Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  4. Python之路,Day1 - Python基础1(转载Alex)

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  5. Python之路,Day1 - Python基础1 --转自金角大王

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  6. Python之路,Day1 - Python基础1 介绍、基本语法、流程控制

    本节内容 1.python介绍 2.发展史 3.python 2.x or python 3.x ? 4.python 安装 5.第一个程序 Hello World 程序 6.变量 7.用户输入 8. ...

  7. Python之路Day7

    第7天主要是面向对象的内容. 学到现在越来越吃力了,从上节课开始博客就没时间写了,看看别人写的博客都那么棒.又想起了那句话比你牛逼的人都在努力,你却在放羊...唉,我写作业的效率有点低,以后得抓紧时间 ...

  8. Python之路:Python简介

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间他为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 ...

  9. Python之路:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  10. Python之路-初识python及环境搭建与测试(Python安装、Anaconda安装、PyCharm安装)

    一.认识Python 起源 Python的作者是著名的“龟叔”Guido van Rossum,他希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻 ...

随机推荐

  1. tomcat+nginx简单实现负载均衡

    1.环境准备 在前面的博客中我已经安装好nginx和一台tomcat了.现在就在加一台tomcat tomcat1:  /apps/tomcat/tomcat1/apache-tomcat-7.0.6 ...

  2. HyperV采用硬盘拷贝的方式迁移虚拟机后的问题处理

    公司有一台RSA认证服务器,是在windows 2008 R2下的虚拟机,最近总是出现服务中断的情况,考虑到宿主机性能较差,于是想迁移到新的服务器中. 本想通过SCVMM来迁移,但因功能不可用,所以采 ...

  3. 如何修复Outlook 2007源文件.PST及性能优化补丁

    kb961752 微软发布了改善 Outlook 2007 个人数据文件性能的补丁,该补丁未来将会集成于 SP2 中,但是现在对于SP1用户可以提前得到它.   获取地址: http://suppor ...

  4. https适配

    http://www.jianshu.com/p/f312a84a944c http://www.2cto.com/kf/201611/570823.html http://www.cnblogs.c ...

  5. Spring中的JDBCTemplate

    src\dayday\JDBCTestTest package dayday;import com.sun.org.apache.xalan.internal.xsltc.compiler.Templ ...

  6. JS中setInterval与setTimeout的区别

    JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操作. setTimeout("function& ...

  7. clojure 之 hello world

    1. 安装Leiningen 2. lein new app bar 3. lein run Hello, World!

  8. CTE

    Why use CTE: Improve code readability Breaking up complex queries into smaller blocks Execution Scop ...

  9. 12、c#中事务及回滚

    public void UpdateContactTableByDataSet(DataSet ds, string strTblName) { try { SqlDataAdapter myAdap ...

  10. flash上传控件跨域

    工作中需要使用百度开发的ueditor,但服务器部署中前端代码和后端代码在不同的域名下,现已解决的前端调后端代码的跨域问题.可是,ueditor中的上传图片flash控件也涉及跨域问题,经过查找发现可 ...