初始面向对象

#  ===========================                 面向对象      =============
# 引子
# 游戏公司 : 人狗大战
# 两个角色 类: 人 狗
# 人 : 名字 性别 攻击力 生命值hp 描述类
# 狗 : 名字 品种 攻击力 生命值
# def person(name,sex,aggr,hp): # 人模子
# person_dic = {
# 'name': name,
# 'sex' : sex,
# 'aggr': aggr,
# 'hp' : hp
# }
# def attack(dog):
# dog['hp'] -= person_dic['aggr']
# print('%s打了%s,掉了%s血' % (person_dic['name'], dog['name'], person_dic['aggr']))
# person_dic['attack'] = attack
# return person_dic
# def dog(name,kind,aggr,hp): # 狗模子
# dog_dic = {
# 'name' : name,
# 'kind' : kind,
# 'aggr' : aggr,
# 'hp' : hp
# }
# def bite(person): # 安全
# person['hp'] -= dog_dic['aggr']
# print('%s咬了%s,掉了%s血' % (dog_dic['name'],
# person['name'],
# dog_dic['aggr']))
# dog_dic['bite'] = bite
# return dog_dic
# hei = dog('小黑','teddy',260,10000)
# alex = person('alex','female',1,250)
# egon = person('egon','male',2,500)
# # dog 咬人 人掉血
# hei['bite'](alex)
# egon['attack'](hei)

# 面向对象的思想
# 人的字典 狗的字典 attack bite 又来了一个人 再创建一个人的字典 面向过程编程
# 类 : 一类事务 人类 狗类
# 对象 : 一个具体的事务 alex egon hei
# 面向对象编程 :


# ========= 面向对象
# class Person: # 类名 Person
# role = '人' # 类的静态变量 是所有的对象共享的一个属性
# def attack(self):pass
# print(Person.role) # 类提供给我们的调用方式
# print(Person.attack)
# Person.role = '中国人'
# print(Person.role)
# Person.attack() # 报错
# print(Person.__dict__) # 存储方式
# print(Person.__dict__['role'])
# print(Person.__dict__['attack'])
# Person.__dict__['role'] = '人'

# 类只有两个作用:
# 1.使用类中的名字
# 查看类中的名字:
# 类名.变量名 # 可以修改变量的值
# 类名.__dict__['变量名'] # 不能修改
# 2.创造对象 实例化对象
# 对象就是实例,一个实际的例子
# 对象 = 类名()
# class Person: # 类名 Person
# role = '人' # 类的静态变量 是所有的对象共享的一个属性
# def __init__(self,name,sex,aggr,hp): #{}
# self.name = name
# self.sex = sex
# self.aggr = aggr
# self.hp = hp
# def attack(self):
# print(self.name)
# print(self.sex)
#
# obj1 = Person('alex','female',250,1)
# obj2 = Person('egon','male',500,2)
# print(obj1.name,obj1.sex,obj1.aggr,obj1.hp)
# print(obj2.name,obj2.sex,obj2.aggr,obj2.hp)
# print(obj1.__dict__)
# print(obj2.__dict__)
# print(obj1)
# Person.attack(obj1) # 调用一个类中的方法了
# obj1.attack()
# 对象的具体:
# 内存地址的不一致
# 不同的对象 属性的值应该不同

# 类名(参数)
# 创造一个空对象 : self
# 调用__init__方法 : 初始化方法
# 把参数传给__init__方法
# 完成init方法中的代码
# 自动将self返回给实例化的地方

# self就是对象

# 调用类中的方法 :
# 类名.方法名(对象)
# 对象名.方法名()


# class Person: # 类名 Person
# role = '人' # 类的静态变量 是所有的对象共享的一个属性
# def attack(self):pass
# print(Person.role) # 类提供给我们的调用方式
# print(Person.attack)
# Person.role = '中国人'
# print(Person.role)
# Person.attack() # 报错
# print(Person.__dict__) # 存储方式
# print(Person.__dict__['role'])
# print(Person.__dict__['attack'])
# Person.__dict__['role'] = '人'

# 类只有两个作用:
# 1.使用类中的名字
# 查看类中的名字:
# 类名.变量名 # 可以修改变量的值
# 类名.__dict__['变量名'] # 不能修改
# 2.创造对象 实例化对象
# 对象就是实例,一个实际的例子
# 对象 = 类名()
# class Person: # 类名 Person
# role = '人' # 类的静态变量 是所有的对象共享的一个属性
# def __init__(self,name,sex,aggr,hp): #{}
# self.name = name
# self.sex = sex
# self.aggr = aggr
# self.hp = hp
# def attack(self):
# print(self.name)
# print(self.sex)
#
# obj1 = Person('alex','female',250,1)
# obj2 = Person('egon','male',500,2)
# print(obj1.name,obj1.sex,obj1.aggr,obj1.hp)
# print(obj2.name,obj2.sex,obj2.aggr,obj2.hp)
# print(obj1.__dict__)
# print(obj2.__dict__)
# print(obj1)
# Person.attack(obj1) # 调用一个类中的方法了
# obj1.attack()
# 对象的具体:
# 内存地址的不一致
# 不同的对象 属性的值应该不同

# 类名(参数)
# 创造一个空对象 : self
# 调用__init__方法 : 初始化方法
# 把参数传给__init__方法
# 完成init方法中的代码
# 自动将self返回给实例化的地方

# self就是对象

# 调用类中的方法 :
# 类名.方法名(对象)
# 对象名.方法名()
原文地址:https://www.cnblogs.com/xuerh/p/8515622.html