面向对象

面向对象初识
类:具有相同属性和技能的一类事物
对象:具体的类的表现,具体的实实在在的一个实例
class#关键字 类名:
类体:两部分:1,变量部分
2,方法(函数部分)


对类中的单个的变量进行增删改查用点 .
查询全部用__dict__


类名+() 实例化的过程(创建一个对象的过程)实例化对象
只要是类名+() 产生一个对象,自动执行类中的__init__方法
类名+() 在内存中,就是在内存中开辟了一个新的空间



实际操作:
class Person:     #类名首字母要大写
    #类体:两部分1变量部分
    mind = '有思想'    #变量,静态变量,也叫静态字段
    animal = '高级动物'
    faith = '有信仰'
    #方法,函数部分,动态变量
    def __init__(self,name,age,hobby):
        self.name = name
        self.age = age
        self.hobby = hobby
    def work(self):
        print('%s会工作' % self.name)
    def shop(self):
        print('人类会购物')
# 类名的角度
# 操作类中的静态变量
# 1,__dict__查询类中的所有内容,也可以查询单独一个(但是不能进行增删改)
print(Person.__dict__)  #查询类中的所有内容
print(Person.__dict__['faith'])   #__dict__这种方法只能查,不能进行增删改
# 2,万能的  .  对类中的单个的变量进行增删改查
print(Person.mind)    #
Person.money='运用货币'   #
Person.mind='无脑'    #
del Person.mind    #

# 操作类中的方法(基本上不用类名去操作)
Person.shop(11)     #基本不用这种方法


# 对象的角度
ret = Person('张三','20','喝茶')  #类名+()的这个过程:实例化的过程(创建一个对象的过程)
print(ret.__dict__)
1,类名+()产生一个实例(对象,对象空间)
2,自动执行类中的__init__方法,将对象空间传给__init__的self参数
3,给对象封装相应的属性

# 对象的角度
# 操作对象中的静态变量(必须要先把对象空间中的参数传给__init__的self参数,就是上面的ret = Person('张三','20','喝茶'))
#         1,__dict__查询对象中的所有的内容
#         2,万能的点  .
print(ret.name)   #
ret.high = 170   #
del ret.name   #
ret.age = 17   #
print(ret.__dict__)

# 对象调用类中的方法(工作中通过对象执行类中的方法,而不是通过类名)
ret.shop()   #工作中一般用这种方法中子星类中的方法
print(ret)   #这里打印的是内存地址

 

posted @ 2018-07-23 16:30  惊世风情  阅读(145)  评论(0编辑  收藏  举报