iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python之路day5
  • 156
分享到

python之路day5

之路python 2023-01-31 02:01:23 156人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

subprocess模块 铺垫:1、os模块os模块中的system,使用os.system("dir")可直接输出结果,如果将os.system("dir")赋值给一个变量,则这个变量接收的是这个命令执行成功与否,如果非0则执行不成功,0

subprocess模块

铺垫:
1、os模块
os模块中的system,使用os.system("dir")可直接输出结果,如果将os.system("dir")赋值给一个变量,则这个变量接收的是这个命令执行成功与否,如果非0则执行不成功,0表示执行成功。
a=os.popen("dir").read()会保存命令输出结果,并赋值给a,此时print(a)就可以输出到屏幕
2、commands模块:只使用于linux

正题:
subprocess.run(['df','-h'])
涉及到管道符的时候,subprocess.run('df -h | grp sda1',shell=True)

subprocess.getstatusoutput('ls /bin/ls')接收字符串格式命令,返回元组形式,第1个元素是执行状态,第2个是命令结果即(0,'/bin/ls')

其它方法如getoutput、check_output、check_call等不经常使用

以上方法,底层都是封装的subprocess.Popen
例1:res=subprocess.Popen("ifconfig |grep 192",shell=Ture,stdout=subprocess.PIPE)此时是把命令执行结果保存在内存空间的管道中,如果想输出到屏幕需要用res.stdout.read(),这里存在命令输入错误报错的情况,如果报错会把错误直接输入到屏幕上,管道中为空。如要保存错误信息,需增加stderr=subprocess.PIPE字段,此时把错误信息也保存到了管道中。
例2:poll()和wait()方法
在例1中如果命令执行耗时很长,如:res=subprocess.Popen("sleep 10;echo 'hello'",shell=Ture,stdout=subprocess.PIPE,stderr=subprocess.PIPE),当使用res.stdout.read()时会等待命令执行结束才能显示,而poll方法可检测命令是否执行结束,0表示执行结束,在编程时可与read结合使用,优化程序。同样wait方法也是要等待程序执行。
例3:terminate()
该方法可以中断执行,如:res=subprocess.Popen("sleep 10;echo 'hello'",shell=Ture,stdout=subprocess.PIPE,stderr=subprocess.PIPE)本需要10s才能执行完,并可以通过res.stdout.read()输出到屏幕,如果中途使用res.terminate(),再调用read方法则为空。
可用参数:

  • args:shell命令,可以是字符串或者序列类型
  • cwd:用于设置子进程的当前目录
  • stdin,stdout,stderr:分别表示程序的标准输入、输出、错误句柄
  • env:用于指定子进程的环境变量。如果env=None,子进程的环境变量将从父进程中继承

面向对象

概念
OOP(object oriented programing)编程就是利用类和对象来创建各种模型来实现对真实世界的描述,面向对象编程可以使程序的维护和扩展更简单,提高开发效率。
核心特性

  1. Class类:对一类相同属性的抽象集合
  2. Object对象:一个类的实例化后的实例,即调用类生成的实体。
  3. Encapsulation封装:在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。之所以要封装是防止数据被随意修改,并使外部程序方便快捷的调用,而无需关注内部构造。
  4. Inheritance继承:一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。
  5. Polymorphism多态:一个接口,多种实现。指一个基类中派生了不同的子类,且每个子类在继承了同样的方法名的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。

类的定义

class dog(object):
    def __init__(self,name,food): #构造函数
        self.NAME = name
        self.FOOD = food
    def sayhi(self):
        print("Hi,i am a dog,my name is %s" %self.NAME)

    def eat(self):
        print("I like eat %s" %self.FOOD)

d1 = dog('Sanmao','apple')
d2 = dog('lisi','banana')

print(d1.NAME)
d2.sayhi()
d1.eat()
d2.eat()

继承
被继承的类称为“基类”
代码示例:

class Person(object):
    def talk(self):
        print("会说话")

class chinaperson(Person):
    def walk(self):
        print("会走路")
a = chinaperson()#实例a同时具有自己定义的属性walk和从基类中继承的属性talk
a.talk()
a.walk()

具体应用:学校实例

import time
class ShoolMember(object):
    member = 0
    def __init__(self,name,age,sex):#构造函数
        self.name = name
        self.age = age
        self.sex = sex
        self.enroll()

    def enroll(self):
        '''注册'''
        print('enroll a new member',self.name)
        ShoolMember.member += 1

    def tell(self):
        print('--------------info %s----------------'%self.name)
        for a,v in self.__dict__.items():
            print('\t',a,v)

    def __del__(self):#析构函数,在程序运行结束后自动执行,手动删除s2,运行结束后自动删除t1和s1
        print('开除了',self.name)
        ShoolMember.member -=1

class Teacher(ShoolMember):
    def __init__(self,name,age,sex,salary,course):#先继承,再重构
        ShoolMember.__init__(self,name,age,sex)  #经典类写法
        #super(Teacher,self).__init__(name,age,sex)新式类写法
        self.salary = salary
        self.course = course

    def teaching(self):
        print('%s is teaching %s'%(self.name,self.course))

class Student(ShoolMember):
    def __init__(self,name,age,sex,course,tuition):
        ShoolMember.__init__(self,name,age,sex)
        self.course = course
        self.tuition =tuition

    def study(self):
        print('%s is studing %s,course  is %s'%(self.name,self.course,self.tuition))

t1 = Teacher('zhangsan',30,'F',30000,'python')
s1 = Student('lisi',24,'M','Python',11000)
s2 = Student('wangwu',18,'M','python',11000)
#print(s1.__dict__)使用该方法可以获取实例的所有参数,即可在tell函数中使用该方法
t1.tell()
s1.tell()
print('学校总人数',ShoolMember.member)
del s2
print('学校总人数',ShoolMember.member)
time.sleep(5)
# t1.teaching()
# s1.study()

经典类与新式类

class A(object):
    def __init__(self):
        self.n = 'A'

class B(A):
    pass
    # def __init__(self):
    #     self.n = 'B'

class C(A):
    def __init__(self):
        self.n = 'C'

class D(B,C):
    pass
    # def __init__(self):
    #     self.n = 'D'
'''
D继承B、C,B、C继承A
正常情况下print(D().n)输出的是D
如果class D修改成pass,输出的是B
如果class B修改成pass,输出的是C
如果class C修改成pass,输出的是A
此查询方法称之为广度查询,即先查询同级的B、C,都查不到的情况下才查上级A
以上方法为新式类写法
如果把class A修改为经典类写法,其它保持不变,并在python2环境中运行(在python3环境中也遵循广度查询法)
class A:
    def __init__(self):
        self.n = 'A'
则遵循深度查询
'''
print(D().n)

--结束END--

本文标题: python之路day5

本文链接: https://www.lsjlt.com/news/185995.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python之路day5
    subprocess模块 铺垫:1、os模块os模块中的system,使用os.system("dir")可直接输出结果,如果将os.system("dir")赋值给一个变量,则这个变量接收的是这个命令执行成功与否,如果非0则执行不成功,0...
    99+
    2023-01-31
    之路 python
  • Python Day5
    1、什么是模块最常见的场景,一个模块就是包含了一组功能的python文件,例如module.py,模块名是module可以使用import module,四个通用类别:   1 使用python编写的.py文件   2 ...
    99+
    2023-01-31
    Python
  • python之路
    一切资源皆可用,只为学到东西!!!http://www.cnblogs.com/wupeiqi/articles/4938499.htmlhttp://www.cnblogs.com/wupeiqi/tag/Python/         ...
    99+
    2023-01-31
    之路 python
  • Day5-python中的模块与包
    1.什么是模块 最常见的场景,一个模块就是包含一组功能的python文件,例如module.py,模块名是module 可以使用import module,四个通用类别: 1、使用pytho...
    99+
    2023-01-31
    模块 python
  • Python之路--Python初识
    python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。   编程语言主要分...
    99+
    2023-01-30
    之路 Python
  • Python全栈之路系列之Python
    The Python interpreter has a number of functions and types built into it that are always available. They are listed her...
    99+
    2023-01-31
    之路 系列之 Python
  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-...
    99+
    2023-01-31
    之路 Python
  • python-成长之路
    一系列python方面有价值的参考/跟python有关的东西http://www.path8.net/tn/archives/6017ToolsPyCharm – 来自JetBrains的强大的IDEPython Tools for Vis...
    99+
    2023-01-31
    成长之路 python
  • Python之路(四)--->list、
      好久没有更新了,感觉自己写的东西并没有太多人看,可能是因为写的不好,也可能是太基础了。学习是一个漫长的过程,结果结果固然重要,但是更重要的是在学习的过程中所学到方法,这些方法在以后的生活还是工作中都能给予你很大的帮助。同时,学习也是一...
    99+
    2023-01-30
    之路 Python list
  • python 全栈之路
    目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. ...
    99+
    2023-01-30
    之路 python
  • Python之路,Day1 - Pyth
    Python之路,Day1 - Python基础1本节内容Python介绍发展史Python 2 or 3安装Hello World程序变量用户输入模块初识.pyc是个什么鬼?数据类型初识数据运算表达式if ...else语句表达式for ...
    99+
    2023-01-31
    之路 Python Pyth
  • python学习之路
    第一部分    使用入门1、人们选择python的六个主要原因是什么?①软件质量、开发者的效率、程序的可移植性、标准库的支持、组件集成和享受简便,其中质量和效率是选择python的主要原因。2、请列举正在使用python的四个著名公司的名字...
    99+
    2023-01-31
    之路 python
  • Python 成仙之路
      第一部分  python基本知识 计算机组成与操作系统基础 Python 入门基础1 --语言介绍 Python 入门基础2 --基本数据类型、运算符 Python 入门基础3 --流程控制 python 入门基础4 --数据类型及内...
    99+
    2023-01-31
    之路 成仙 Python
  • Python之路_递归
    概念: 函数直接或者间接调用自身就是 递归 递归需要有边界条件。递归前进段。递归返回段 递归一定要有边界条件(否则会出现无限递归前进) 当边界条件不满足的时候,递归前进 当边界条件满足的时候,递归返回...
    99+
    2023-01-31
    递归 之路 Python
  • Python之路【第八篇】:Python
    一、模块和包 模块(module)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码会越来越长,越来越不容易维护。 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较...
    99+
    2023-01-31
    之路 第八篇 Python
  • Python之路【第六篇】:Python
    一、迭代器 1、迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 代码如下: while True: print('==========&...
    99+
    2023-01-31
    之路 第六篇 Python
  • Python之路【第五篇】:Python
    一、文件操作 1、介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分。 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的...
    99+
    2023-01-31
    之路 第五篇 Python
  • Python之路【第七篇】:Python
    一、装饰器 1、装饰器的概念 #装饰器定义:本质就是函数,功能是为其他函数添加附加功能 二、装饰器需要遵循的原则 #原则: 1、不修改被修饰函数的源代码 2、不修改被修饰函数的调用方式 装饰器他人的器具,本事可以是任意可调用对象,被...
    99+
    2023-01-31
    之路 第七篇 Python
  • Python之路(二)Python基础
    执行 Windows 方式一 D:\Python\python.exe D:\Python17\DAY01\Helloworld.py 方式二 D:\Python\python.exe Linux 方式一 [root@linux-...
    99+
    2023-01-31
    之路 基础 Python
  • python之路-基础篇
    python基础第一章1、python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  ...
    99+
    2023-01-31
    之路 基础 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作