• 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.多态
    静态方法

    类方法

    属性方法
  • 相关阅读:
    C#中使用MATLAB
    各种插值法及效果图对比
    Visual Studio中你所不知道的智能感知
    C#中使用Surfer
    XCode中连接使用GitHub
    个人作业Week1
    个人作业Week3
    个人作业Week2
    第一次作业——subway
    执行ajax加载页面中的js总结
  • 原文地址:https://www.cnblogs.com/heshaochuan/p/6103574.html
Copyright © 2020-2023  润新知