初识面向对象

面向过程指的一切以事物的流程为核心,清楚列出解决问题的步骤。

面向对象指的是要完成某些事物,不用自己去做,交给能够完成这个任务的功能模块(对象)去完成

 

类的创建

定义类

class Cat  #定义类名

    color = ‘red’ 类的公共属性(数据属性)

    def eat(self,name):  #定义方法

       self.name = name  属性(是调用就是谁的)

        print(‘the cat is eating’)

 

BlueCat = Cat( )#创建一个猫(对象)名叫蓝猫,同样的方式可以创建多个猫

创建对象

  Cat() #对类进行调用就是创建对象,(创建时使用了一个新的内存,这个内存将来在保存属性,创建时里面就包含了方法)

一般讲创建的对象赋值给某个变量(就是对象的引用指向一个变量)

类与对象的关系 :相当于设计图纸(类)与通过设计图纸制造出来的实体的东西(对象)

# 类中的代码在类定义阶段便会执行,自动产生的命名空间用来存放类的变量名与函数名,可以通过 类名.__dict__ 查看,以字典的形式存放数据属性和函数属性
# 对象.方法 中的点是访问属性的语法,类中定义的名字,都是类的属性,在python 有两种属性,数据属性和函数属性,数据属性是共享,
# ,函数属性是绑定给对象用的(eg: User.remove() >>>> 这个就是静态的数据类型绑定,
# print(DBUtil.__dict__)
#  打印如下:{'__module__': '__main__', 'gg': '我的天',
#  '__init__': <function DBUtil.__init__ at 0x000000E1AB272AE8>,
# 'test_connect': <function DBUtil.test_connect at 0x000000E1AB272E18>,
#  'connect': <function DBUtil.connect at 0x000000E1AB272A60>,
# '__dict__': <attribute '__dict__' of 'DBUtil' objects>,}
#程序中类的用法
# .:专门用来访问属性,本质操作的就是__dict__
#DBUtil.gg = '我的天' 基本相当于字典操作中的DBUtil.__dict__['gg'] = '我的天'
# del DBUtil.gg等于经典类的操作DBUtil.__dict__.pop('gg')
#
# class DBUtil:#对方法进行封装,将同一类的所有功能封装在一个类中, #例如将某个数据库的所有操作 定义为一个类
#
#     gg = '我的天'  # 数据属性,这个属性是共享的,无论是谁在调用这个属性,内存id 都是一样的
#     def __init__(self, ip, username, password):# __init 下面可以有任何的代码但是不能有返回值
#         # 这里就是封装,self里面就是一个对象的引用,对属性进行封装,方面类中的各个方法进行调用
#         self.ip = ip
#         self.username = username
#         self.password = password
#
#     # 对功能的封装
#     def test_connect(self):# 函数属性  #   谁调用的是这个方法,这个self就是谁
#         pass
#
#     def connect(self):
#         pass
#
# class SQLDBUtil(DBUtil): #这里是单继承,在创建的子类的时候在括号内填入父类的名称就可以,如果是
#     # 多继承的话,可以在括号内填入多个父类的类的名称,按照就近的原则,在子类继承的时候,最先查找的是()括号内的第一个父类
# 如果第一个没有的话,才会继续查找第二个参数的父类,一次类推eg: class son(father1,father2,father3) 从左往右查找
#
#     def add(self):
#         pass
#
#     def upd(self):
#         pass
#
# print(DBUtil.__dict__)
# User = DBUtil('192.168.1.1','pzw','Abc')
# 无论是查找方法还是属性,都是先从自己的命名空间开始查找,如果找不到的话,才会向上级的命名空间去查找

# 在创建对象的一瞬间就会系统自动调用__ew__这个构造方法,创建在内存中开辟一个空间,创建一个空对象,之后触发__init_,将创建该对象的引用以实参的方式传递给__init__方法中的self,
__init__对对象进行初始化,
#执行完初始化的方法之后,执行赋值的操作, #将创建对象后的引用赋值给相关的变量

 

posted @ 2018-11-06 19:39  好大一个圈  阅读(109)  评论(0编辑  收藏  举报