zoukankan      html  css  js  c++  java
  • Python之路,day7-Python基础

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

    py2.7
    commands
    commands.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('	',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.多态
    静态方法

    类方法

    属性方法
  • 相关阅读:
    long和Long的区别
    C语言的变量的内存分配
    Java蓝桥杯 算法提高 九宫格
    Java实现 蓝桥杯算法提高金明的预算方案
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 三角形
    Java实现 蓝桥杯 算法提高 三角形
    Java实现 蓝桥杯 算法提高 三角形
    Java实现 蓝桥杯 算法提高 三角形
  • 原文地址:https://www.cnblogs.com/heshaochuan/p/6103574.html
Copyright © 2011-2022 走看看