博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初始面向对象
阅读量:4626 次
发布时间:2019-06-09

本文共 4025 字,大约阅读时间需要 13 分钟。

#  ===========================                 面向对象      ============= # 引子 # 游戏公司 : 人狗大战 # 两个角色 类: 人 狗 # 人 : 名字 性别 攻击力 生命值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

你可能感兴趣的文章
分治策略求解数组的最大连续子数组的和
查看>>
MobSF 框架安装使用部署
查看>>
Windows漏洞利用技术概述
查看>>
oracle char 多位,引发的问题
查看>>
两个数最大公约数和最小公倍数
查看>>
输出某个目录下的所有文件和文件夹,包括子文件夹中的内容
查看>>
TomCat服务器闪退问题
查看>>
ajax接收到的数据是一个页面的代码的原因
查看>>
回文数判断
查看>>
jquery将日期转换成指定格式的字符串
查看>>
Modified Least Square Method and Ransan Method to Fit Circle from Data
查看>>
JavaScript显示星期几
查看>>
thinkphp5命名规范
查看>>
设计模式六大原则
查看>>
centos7 --ngnix 常用命令:
查看>>
flask+jsonp跨域前后台交互(接口初体验)
查看>>
Eclipse+Maven+springmvc+HelloWorld--Eclipse Maven springMVC第一个HelloWorld吐血配置整理
查看>>
传Windows 8.1系统将重新加入开始按钮
查看>>
C# 自定义异常的方法源码演示及说明
查看>>
输出与输出:putchar() getchar() printf() scanf() puts() gets() sscanf()
查看>>