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基础的更多相关文章

  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. freeCAD文档结构

    一个freecad文档包含了你场景中的所有物体.它可以包含组及任何工作平台制造的物体.你可以切换工作台,但是它仍然工作在同一个文档上.当您保存您的工作时,该文件就被保存到磁盘上.你可以同时打开多个fr ...

  2. oracle应用-表空间.用户名.权限

    oracle 数据库应用 虽然代码少但是很实用! --01.表空间create tablespace tp_hrdatafile 'E:\tp_hr01.dbf' size 10M, 'E:\tp_t ...

  3. Hadoop YARN中内存的设置

    在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离.R ...

  4. sql 日期格式输出 - 转

    SELECT CONVERT(varchar(100), GETDATE(), 0) 05 9 2011 9:12AM SELECT CONVERT(varchar(100), GETDATE(), ...

  5. Bat文件, Services

    创建Bat文件自启动Windows Service; Services: sc stop/delete/query/find "service name"; Service Fol ...

  6. 调试python程序

    pdb 关键步骤 python -m pdb ***.py n 单步

  7. Caffe 源碼閱讀(六) InternalThread

    类InternalThread是一个虚类,是Caffe中的多线程接口,其本质是为封装了boost::thread 看源码可以得到以下结论: 1.每个派生类都需要实现一个InternalThreadEn ...

  8. cocos2dx 之 android java 与 c++ 互相调用 代码(以百度定位为例子)

    在作cocosdx项目移植到android上时,预见各种头痛问题,今天首先就说说如何在 java 中调用c++ 代码. 这里就用百度定位为例吧,也是我项目中的一小块内容.首先,先百度一下 “百度定位s ...

  9. NOPI导出加载模板

    ListExcel导出(加载模板) /// <summary> /// List根据模板导出ExcelMemoryStream /// </summary> /// <p ...

  10. php实现的笛卡儿积

    之前在网上找到一个大牛写的版本(网址已经记不得了..),如下 function Descartes1() { //Cartesian product of arrays or strings or s ...