• sys模块
import sys

def _add(a, b):
return a + b def _sub(a, b):
return a - b def _mul(a, b):
return a * b def _div(a, b):
return a / b def caculate(num1, num2, op):
'''四则运算'''
'''
op_ls = ['+', '-', 'x', '/']
fun_ls = [_add, _sub, _mul, _div]
for i in range(len(op_ls)):
if op_ls[i] == op:
return (fun_ls[i])(num1, num2)
'''
op_fun = {'+':_add, '-':_sub, 'x':_mul, '/':_div}
for k in op_fun:
if k == op:
return (op_fun[k])(num1, num2) # print(sys.argv)
if __name__ == '__main__':
'''
argv = sys.argv
if len(argv) >= 4:
res = caculate(int(argv[1]), int(argv[3]), argv[2])
print('{} {} {} = {}'.format(argv[1], argv[2], argv[3], res))
'''
sys.exit(0) # 终止 print(sys.builtin_module_names)
  • time模块
import time

# 时间戳
tm = time.time()
# 时间结构
ltime = time.localtime()
print(ltime.tm_year)
# 时间字符串
str_time = time.strftime("%Y-%m-%d %H:%M:%S", ltime)
print(str_time)
  •   验证模块的使用
__author__='zhang'

# import pag.moduler as pm
# from pag.moduler import _test
from pag.moduler import * # 私有函数(_或__开头的函数)没导入
import hw
import sys if __name__ == '__main__':
print(__name__)
print(__doc__)
print(__author__) # 得到模块的搜索路径
print(sys.path) # pm._test()
test()

 导用模块的目录下应:touch __init__.py 

import main

print(main.__name__)
print(main.__doc__)
print(main.__author__)
  • 面向对象(oop):

  类:抽象概念,类型

  方法:类中的函数称为方法;你前面学到的有关函数的一切都适用于方法,就目前而言,唯一重要的差别是调用方法的方式。__init__()是一个特殊的方法。

  对象:实际物体,类实例化对象

  属性:
  描述类---》类属性
  描述对象---》实例属性

# 面向过程描述学生的成绩
d = {'m':80, 'yang:88, 'zh':100, 'liu':12} # 抽象类型
class Student(object):
count = 0 # 类属性:类名.属性名
def __init__(self, score): # --->构造函数:实例化对象时自动调用的
# print('__init__ is called')
# self : 当前对象
self.score = score
Student.count += 1 # 实例方法
def setName(self, name):
if 1 < len(name) < 32:
self.name = name
return True
else:
return False def run(self):
print('%s is running' % self.name) def __del__(self): # 析构方法:对象销毁的时候自动调用调用
print('delete.....') # 实例化对象
s1 = Student(100)
# 访问对象的属性
print(s1.score)
s1.name = 'chenyunliang'
print(s1.name) del s1 s2 = Student(98)
print(s2.score) # 调用方法
s2.setName('python')
print(s2.name) s2.run() print('学生对象有%d个'%Student.count)
# 抽象类型
class Student(object):
count = 0 # 类属性:类名.属性名
def __init__(self, score): # --->构造函数:实例化对象时自动调用的
self.__score = score # 私有属性,只允许在本类中访问
Student.count += 1 # 实例方法
def setName(self, name):
if 1 < len(name) < 32:
self.name = name
return True
else:
return False def run(self):
print('%s is running' % self.name) def getScore(self):
self.__privateFun()
return self.__score # 私有方法
def __privateFun(self):
print('private....') def __del__(self): # 析构方法:对象销毁的时候自动调用调用
print('delete.....') # 实例化对象
s1 = Student(100)
# 访问对象的属性
print(s1.getScore()) # 私有属性---》解释器做了名字的修改
print(s1._Student__score) # 私有方法
# s1.__privateFun()
s1._Student__privateFun()
  • 继承

    class Animal(object):
    def __init__(self, name, age=1, color='white'): # 重写
    self.name = name
    self.age = age
    self.__color = color # _Animal__color def show(self):
    print(self.name, self.age, self.__color) class Dog(Animal):
    def __init__(self, name, age, breed):
    # 调用父类方法
    # Animal.__init__(self, name, age)
    # super(Dog, self).__init__(name, age)
    super().__init__(name, age)
    self.breed = breed def show(self):
    Animal.show(self)
    print('品种是%s' % self.breed) class Cat(Animal):
    '''
    def getColor(self):
    return self.__color # 子类中不能直接访问继承的私有属性
    # return self._Animal__color
    '''
    pass animal1 = Animal('花花')
    animal1.show() d1 = Dog('旺财', 1, '哈士奇')
    d1.show() cat1 = Cat('来福', 2, '花色')
    cat1.show() print(cat1.getColor())

Python_day7的更多相关文章

  1. python_day7【模块configparser、XML、requests、shutil、系统命令-面向对象】之篇

    python内置模块补充 一.configparser configparser:用户处理特定格式的文件,其本质是利用open打开文件 # 节点 [section1] #键值对k1 = v1 k2:v ...

  2. python_day7学习笔记

    类 1)创建一个类 #coding=utf-8 __author__ = 'Administrator' class Employee: '所有员工的基类' empCount = 0 def __in ...

随机推荐

  1. bashrc和bash_profile

    在~/.bashrc中起别名 !/bin/bash下必须加上shopt -s expand_aliases #!/bin/sh下不用 shopt -s expand_aliases 这一条命令让she ...

  2. linux 之 shell

    echo 输出命令 语法:echo [选项][输出内容] 选项 -e:支持反斜线控制的字符转换 范例 vi hello.sh #!/bin/bash #author liuch echo " ...

  3. nginx warn an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/ while reading upstream

    最近管理的nginx发现大量的error log,log内容如下: an upstream response is buffered to a temporary file /var/cache/ng ...

  4. C#使用Mutex实现单例应用程序

    不少应用程序有单一实例的需求,也就是同时只能开启一个实例(一般也就是一个进程). 实现的方式可能有判断进程名字,使用特殊文件等等,但是最靠谱的方式还是使用系统提供的 Mutex 工具. Mutex是互 ...

  5. WCF基础_使用svcutil.exe 工具来生成调用文件

    右键单击一个服务在浏览器中打开时,通常会有这么一段话: ServiceDemo 服务 已创建服务. 若要测试此服务,需要创建一个客户端,并将其用于调用该服务.可以使用下列语法,从命令行中使用 svcu ...

  6. JSON中的parse和Stringify方法

    JSON.parse(str)  将字符串解析成对象 var str = '{"name":"huangxiaojian","age":&q ...

  7. 对TCP三次握手的思考

    从第一次了解到TCP的连接方式到现在有一年半了,但好像一直没有把三次握手的由来弄透彻,解释上总有一些瑕疵在,现在来说说昨晚的思考. 对于一个通信链路,由于种种原因发送方发送的消息未必能传达到接收方,所 ...

  8. Docker容器镜像瘦身的三个小窍门(转)

    [转自:http://dockone.io/article/8174] 在构建Docker容器时,我们应尽可能减小镜像的大小.使用共享层的镜像尺寸越小,其传输和部署速度越快. 不过在每个RUN语句都会 ...

  9. innodb 体系结构(后台进程)

    一.后台进程(innodb 1.0.x以前的) 1.master thread master thread具有最高的线程优先级别,其内部由多个循环(loop)组成:主循环(loop).后台循环(bac ...

  10. Ubuntu 增加swap空间大小

    1. create a 1G file for the swap. sudo fallocate -l 1G /swapfile we can verify that the correct amou ...