张拽拽

导航

Python_day7

  • 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())

     

posted on 2018-12-13 19:24  张拽拽  阅读(166)  评论(0编辑  收藏  举报