zoukankan      html  css  js  c++  java
  • python之面向对象

    面向对象

    标签(空格分隔): 面向对象


    面向对象:

    类:

    任何事物归为一类,就是一系列相似特征与技能的结合体;

    • 强调:站在不同的角度得到的分类是不一样的;

    对象和类:

    在现实世界中:先有对象,后有总结出来的类
    在程序中:先有类,然后调用类来产生对象;

    • 类就相当于模版,然后才造对象;
      例如:
      王二丫:
      特征:
      --------学校:
      --------名字:
      --------性别:
      --------年龄:
      技能:
      --------吃饭:
      --------学习:
      --------睡觉:
      李三:
      特征:
      --------学校:
      --------名字:
      --------性别:
      --------年龄:
      技能:
      --------吃饭:
      --------学习:
      --------睡觉:
      相似的特征:
      学习,吃饭,睡觉

    so:先定义类:

    #先定义类
    class Student:
        schoole='home'
        #功能---用方法表示
        def learn(self):
            print('learn')
        def sleep(self):
            print('sleep')
        def eat(self):
            print('eat')
    #产生对象,最终程序的运行就是对象调用的;
    stu1=Student()#实例化对象
    stu2=Student()
    

    如何使用类:

    类和函数的区别,类在定义的时候,就会就会被执行,但是函数只有在调用的时候,才会被执行;

    在内存里面,执行类的时候,会有一个名称空间来存放类的名称空间;
    查看类的名称空间:

    print(Student.__dict__)
    

    类是一系列对象相似的特证与技能的集合:特征在程序中用:变量表示,技能用函数表示:类的内部无非就是变量的定义与函数的定义,但是python不限制,写其他的代码在类里面;

    类的用法:无非就是一些名字,技能,针对这些东西,进行增删改查,就是通过类的名称空间来进行这些操作:如下代码:

    class Student:
        schoole='home'
        #功能---用方法表示
        def learn(self):
            print('learn')
        def sleep(self):
            print('sleep')
        def eat(self):
            print('eat')
    print(Student.__dict__['school'])
    print(Student.__dict__['eat'])
    

    如何使用对象:

    image.png-57.6kB
    如上图的代码:
    stu1,就是一个实例化的对象,这个对象有个两个功能,学习,吃饭,属相是同一个学校;

    • 但是特殊的对象怎么办?就是有些对象有个性化的设置:
      __init__用来为对象定义对象独有的特征;
    class luffStudent:
        school='luffcity'
        def __init__(self,name,age,sex):
            self.Name=name
            self.Age=age
            self.Sex=sex
        def learn(self):
            print('is learning')
        def eat(self):
            print('is sleeping')
    stu1=LuffyStudent()
    

    按照上述代码执行:
    结果会报错:
    image.png-22.8kB
    这里用户会很懵逼:明明我们只是创建了一个类而已,并没有调用__init__方法,以上错误说明,是python自己调用,就是在你实例化的时候,就会调用这个方法,

    针对上述的代码:我们进行修改为:
    stu1=LuffyStudent('wang','nv','45')

    在次执行上述代码,不会报错了;

    • 现在有__init__方法的时候,在实例化的时候:
      1.先产生一个对象,
      2.触发__init__会返回类的函数属性,里面有几个参数传几个参数,其实self就是LuffyStudent()空对象而已;然后self就是这个空对象,他会当做第一个参数传给__init__,
      3.然后传:'wang','nv','45'
    • 访问属性:
      print(stu1.Name)
    • 同样我们可以对属性进行增删改查:

    image.png-49.5kB

  • 相关阅读:
    PhoneGap源码分析8——cordova
    PhoneGap源码分析9——引导程序与channel.join
    JavaScript高级程序设计(第3版)学习笔记9——函数(下)
    PhoneGap源码分析7——cordova/channel
    JavaScript高级程序设计(第3版)学习笔记13——ECMAScript5新特性
    JavaScript高级程序设计(第3版)学习笔记1——概述
    JavaScript高级程序设计(第3版)学习笔记4——运算符和操作符
    JavaScript高级程序设计(第3版)学习笔记7——函数(上)
    JavaScript高级程序设计(第3版)学习笔记3——简单数据类型
    JavaScript高级程序设计(第3版)学习笔记2——基础语法
  • 原文地址:https://www.cnblogs.com/surewing/p/9607455.html
Copyright © 2011-2022 走看看