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. 兼容性测试-如何使用IE11做低版本IE的兼容性测试

    操作步骤: 切换模式方法-按F12->展开显示->仿真菜单>在文档模式下拉框中选择IE版本

  2. MySQL主从复制与读写分离

    MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...

  3. 长时间停留在calculating requirements and dependencies 的解决方案

    如果Eclipse花费了很长的时间calculating requirements and dependencies(计算需求和依赖性 ) 这个问题通常就是在点击安装之后显示“Calculating ...

  4. Android ScrollView与ListView的冲突解决办法汇总

    1. public  void setListViewHeight(){ ListAdapter listadapter = lv.getAdapter(); if (listadapter == n ...

  5. nodejs渲染模板

    为什么要用nodejs来渲染? 之前前端的任务就是用HTML+CSS 来高保真的还原UI所设计原图,偶尔会使用少量的jq来对页面添加一些特效,页面还要交付给后端开发人员进行数据填充(php jsp)等 ...

  6. Direct3D 10学习笔记(二)——计时器

    本篇将简单整理Direct3D 10的计时器实现,具体内容参照< Introduction to 3D Game Programming with DirectX 10>(中文版有汤毅翻译 ...

  7. re.S

    在Python的正则表达式中,有一个参数为re.S.它表示多行匹配

  8. c++ 泛型编程及模板学习

    泛型编程,英文叫做Generic programming 可以理解为,具有通用意义的.普适性的,编程. 比如,你要实现一个函数去比较两个数值的大小,数值可能是int或者string.初次尝试,我们直观 ...

  9. c#中方法的重载

    转自:http://www.cnblogs.com/lovesong_blog/articles/1416617.html string和program都是Object的派生类,string类型是se ...

  10. Centos 7防火墙firewalld开放80端口(转)

    开启80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent 出现success表明添加成功 命令含义: --zone #作用域 -- ...