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

    一、什么是面向对象

    '''
    - 面向对象是一种编程思想
    	- 注意:要站在全局的角度去设计
    	核心是“对象”二字,对象是“特征与技能的结合体”,基于该编程思想编写程序,需要如上帝一样创造,抽象出一个个类
    	- 优点:
    		扩展性强
    	- 缺点:
    		编写程序的复杂度比面向过程更高
    '''
    

    二、如何产生对象

    1、类和对象的关系

    '''
    现实生活中:先由一个个对象,总结出各对象之间的特征特点,抽象出一个类
    编程过程中:先定义一个类,再由类实例化产生一个对象
    - 对象指的是“特征与技能”的结合体
    - 类指的是对象之间“特征与技能”的结合体
    如 人类是一个抽象的类,而具体到某一个人,则就是人类实例化的对象。
    '''
    

    2、定义类的语法

    class 类名:
    	pass
    # 注意:类名一般用驼峰命名法命名
    

    三、类的实例化

    '''
    类的实例化:调用类的过程称之为类的实例化,产生的对象也可以称之为类的一个实例
    
    调用类产生对象的过程:
    	1、会产生一个空的对象的命名空间
    	2、会自动触发__init__,并且会将对象当作第一个参数传入
    	3、会将调用类括号内的参数一并传给__init__()
    '''
    

    四、查看类与对象的命名空间

    # 类.__dict__
    # 对象.__dict__
    

    五、类或对象的属性操作

    class People:
        country = 'China'
        def __init__(self, name, age, sex):
            print(self.__dict__)
            print(self)
            self.name = name
            self.age = age
            self.sex = sex
            print(self.__dict__)
    
        # 注意: 看到self就应该知道是对象本身
        def learn(self):
            print('learning....')
    
            
    p_obj = People('yyh',18,'male')
    '''
    类和对象都可以直接通过直接访问的方式来对属性进行 查、增、删、改 的操作
    '''
    People.country
    p_obj.country
    p_obj.name
    

    六、类中数据属性(类中的变量):类中属性是给对象使用的,对象引用类中的属性,指向的都是类的内存地址

    # p_obj1 = People('tank', 17, 'male')
    # p_obj2 = People('jason', 71, 'female')
    # p_obj3 = People('大饼', 72, 'female')
    # print(p_obj1.country, id(p_obj1.country))
    # print(p_obj2.country, id(p_obj2.country))
    # print(p_obj3.country, id(p_obj3.country))
    
    

    七、类中的方法

    # 类中的方法是给对象使用的
    # 不同的对象调用方法就会将方法绑定给不同的对象,并且会将对象当作第一个参数传入,称为类的绑定方法
    # print(People.learn)
    # print(p_obj1.learn)  # bound method
    # print(p_obj2.learn)
    # print(p_obj3.learn)
    

    八、对象属性的查找顺序

    # 先从对象自己名称空间中查找,然后从类的名称空间中查找。
    # 找不到则报错
    
  • 相关阅读:
    在有跳板机的情况下,SecureCRT自动连接到目标服务器
    JavaScript中使用console调试程序的坑
    Python中docstring文档的写法
    Nginx+uWSGI+Django原理
    uWSGI uwsgi_response_write_body_do(): Connection reset by peer 报错的解决方法
    Python LOGGING使用方法
    Python计算斗牛游戏的概率
    Python垃圾回收机制详解
    PhantomJS实现最简单的模拟登录方案
    如何设置Jquery UI Menu 菜单为横向展示
  • 原文地址:https://www.cnblogs.com/Ghostant/p/11933847.html
Copyright © 2011-2022 走看看