Python之路,day7-Python基础

os.system 输出命令结果到屏幕,返回命令执行状态os.popen("dir").read()#会保存命令的执行结果输出

py2.7commandscommands.getstatusoutput("dir")#windows不好用#linux可以

subprocess==================================面向对象

模板造对象

一.类的特性

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 = ‘123‘
 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
18 d = Dog("a1",‘haochide‘)#Dog(d,"a1") #实例化后产生的对象叫实例(当前类的实例)
19 d2 = Dog("a2",‘pi‘)
20
21 d.sayhi()
22 d2.sayhi()
23 d.eat()
24 d2.eat()
25 print(d.get_getj())
26
27 print(d._Dog__test)
28
29 def shot2():
30     print("buhuia")
31
32 d.sayhi = shot2
33 d.sayhi()
34 # print(d.test)
2.继承    通过父类---》子类的方式 实现不同角色的共同点和不同点 以最小代码量的方式实现

类 ----》实例化----》实例对象

__init__构造函数

self.name = name #属性,成员变量,字段

def sayhi() #方法,动态属性

公有属性    在类里定义的属性,任何对象都可以访问

私有属性    __private_attr_name = value

def get_heart(self) #对外部提供只读访问接口        return self.__heart

r1._Role__heart 强制访问私有属性

析构方法

继承

多继承
 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
11 class BlackPerson(Person):
12     def __init__(self,name,age):
13         Person.__init__(self,name,age)
14         print(self.sex)
15
16     def walk(self):
17         print("is walk")
18
19
20
21 b = BlackPerson(‘liusijia‘,10)
22 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__
 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
60 del s1
61 print(SchoolMember.member)
62
63 t1.tell()
64 s2.tell()
3.多态
静态方法

类方法

属性方法
时间: 2024-08-09 21:51:07

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

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

本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def per

Python 之路 Day06 类基础和概念

本章大纲: 类的对象和类的区别 类的名称空间 __dict__ 类的对象的名称空间 __dict__ 绑定方法和非绑定方法 类和类型 变量变形(封装变量,控制变量引用)__ 类的绑定方法 id命令分析内存地址(类的名称空间属性和类对象名称空间属性内存指向) is命令(比较内存地址指向) property类对象的属性方法 staticmethod类对象的非绑定方法 __str__自定义str(self)  类对象字符串格式打印 类的继承 __bases__显示类的继承 类的继承查找顺序 类的继承查

Python之路,Day2 - Python基础2

Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 1 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 1 2 3 4 5 6 7 8 >>> names[0] 'Alex' >>> na

Python之路,day16-Python基础

Python之路,day16-javascript基础 发展历史:     1.table     2.table + css     3.div + css js: js简介: 1.JavaScript 被设计用来向 HTML 页面添加交互行为. 2.JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言). 3.JavaScript 通常被直接嵌入 HTML 页面. 4.JavaScript 是一种解释性语言(就是说,代码执行不进行预编译) 浏览器---解释器: 1.html解

Python之路,day22-BBS基础

Python之路,day22-BBS基础 多级评论 from django.template import Library from django.utils.safestring import mark_safe register = Library() @register.simple_tag def truncate_upload_img(img_src): print(dir(img_src)) print(img_src.name) return img_src.name.lstrip

七日Python之路--无关Python(混人乱语,不看也罢)

2014年08月06日的下午,内心压制不住的狂躁抑或浮躁.莫名的感到很多无形的压力,以至于感觉自己似乎快要死去. 怎么说呢,前些日子情人节.自己鼓足勇气去见了自己内心喜欢的女生,当然她也是知道的.我们大二还是大三认识的,差不多有两年多了吧.大学不在一个学校,还有一个原因就是她那时有男朋友,但跟男朋友的时分时合.自己由于种种原因,跟她联系也不是太多.后来毕业,自己考研失败,当然这其中全是自己的问题,既然自己做出了选择便没有什么谈论后悔的资格.后来知道她考上了研究生.而我则在青岛找了一家小公司做起了

Python之路,Day1 - Python基础1

本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语

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

本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for 循环 break and continue 表达式while 循环 作业需求 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语

Python之路,day13-Python基础

一.redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周

Python之路—初识Python

Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众