第二十二天
Posted xueba
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二十二天相关的知识,希望对你有一定的参考价值。
面向对象编程
先来定义楔子 用来描述一类事物
class Person: #类名
def __init__(self):
# 必须叫 __init__ 不能改变 所有的在一个具体的人物
# 出现之后拥有的属性
print("-"*20)
self.name='alex'
self.sex="不详"
self.job="搓澡工"
self.level=0
self.hp=250
self.weapon="搓澡巾"
self.ad=1
print("*"*20)
# Person() 类名加括号-->执行
# 类名() 自动调用勒种的__init__方法
alex=Person()
xiaobai=Person()
print(alex,alex.__dict__)
# <__main__.Person object at 0x00B75DB0> 实例化过程
# 执行之后 self 自动传给 alex
类和对象的关系?
类
是一个大范围, 是一个模子,它约束了事物有那些属性,但是不能约束具体的值
对象
是一个具体内容,是模子的产物,它遵循了类的约束,同事给属性赋予具体的值
Person 是一个类, alex xiaobai 都是这个类的对象
alex=Person("alex")
给类传参数,自动传给self 这是约定
模板
例子
class Person: #类名
def __init__(self,name,sex,job,level,hp,weapon,ad):
# 必须叫 __init__ 不能改变 所有的在一个具体的人物
# 出现之后拥有的属性
print("-"*20)
self.name=name
self.sex=sex
self.job=job
self.level=level
self.hp=hp
self.weapon=weapon
self.ad=ad
print("*"*20)
xiaowu=Person('xiaowu','女','学生','0','100','嘴',1)
xiaoding=Person('xiaoding','男','学生','0','100','嘴',1)
print(xiaowu,xiaowu.__dict__)
print(xiaoding,xiaoding.__dict__)
#每一个类名都有自己的空间
属性的修改
xiaoding.name="大丁"
print(xiaoding.name)
属性的增加
本来没有这个 属性 新增
xiaoding.money=200000
print(xiaoding.money)
属性删除
del xiaoding.money
print(xiaoding.__dict__)
修改字典//列表 中的某个值, 或者是一个对象的属性,都不会影响的这个对象 字典?列表所在的内存地址
实例化经历的过程
- 类名() 之后第一件事, 开辟一块内存空间
- 调用_ _init__ 把空间的内存地址作为self 传递到函数内部
- 所有的这一个对象 需要使用的属性都需要和self 关联起来
- 执行完init 中的逻辑之后 self 变量会自动的被返回到调用处
#
Dog类 ,名字 种类 血量 攻击力
class Dog():
def __init__(self,n,p,x,g):
self.name=n
self.kind=p
self.hp=x
self.ad=g
xiaobai = Dog('小白',"和小屋一类",100,0)
print(xiaobai.__dict__)
print(xiaobai.name)
print(xiaobai.name)
实例化两个用户 账号 密码是他的两个类
class yong():
def __init__(self,name,password):
self.name=name
self.password=password
xiaoming=yong("1111","password1")
xiaohong=yong("2222","password2")
print(xiaoming.__dict__)
print(xiaohong.__dict__)
小丁和小屋的游戏
class Person: #类名
def __init__(self,name,sex,job,hp,weapon,ad):
# # 必须叫 __init__ 不能改变 所有的在一个具体的人物
# # 出现之后拥有的属性
self.name=name
self.sex=sex
self.job=job
self.level=0
self.hp=hp
self.weapon=weapon
self.ad=ad
def 打(self,dog):
self.ad=5
if dog.hp<=self.ad:
dog.hp=0
else:
dog.hp -= self.ad
print("%s给%s打了一顿,%s掉了%s点血,%s当前血量%s" %(self.name,dog.dog_name,dog.dog_name,self.ad,dog.dog_name,dog.hp))
def 摸屁股(self,dog):
self.ad=10
if dog.hp<=self.ad:
dog.hp=0
else:
dog.hp -= self.ad
print("%s摸了一把%s的屁股,%s掉了%s点血,%s当前血量%s" %(self.name,dog.dog_name,dog.dog_name,self.ad,dog.dog_name,dog.hp))
def 种草莓(self, dog):
self.ad = 20
if dog.hp <= self.ad:
dog.hp = 0
else:
dog.hp -= self.ad
print("%s给%s的脸上中了一个草莓,%s掉了%s点血,%s当前血量%s" % (
self.name, dog.dog_name, dog.dog_name, self.ad, dog.dog_name, dog.hp))
def 必杀技(self, dog):
self.ad = 10000
if dog.hp <= self.ad:
dog.hp = 0
else:
dog.hp -= self.ad
print("%s把%s亲到窒息,%s掉了%s点血,%s当前血量%s" % (
self.name, dog.dog_name, dog.dog_name, self.ad, dog.dog_name, dog.hp))
class Dog(): #类名
def __init__(self,name,kind,hp,ad):
self.dog_name=name
self.kind=kind
self.hp=hp
self.ad=ad
#
def 咬(self, person):
self.ad=5
if person.hp<=self.ad:
person.hp=0
else:
person.hp -= self.ad
print("%s咬了一口%s的小丁丁,%s掉了%s点血,%s当前血量%s" %(self.dog_name, person.name, person.name,self.ad,person.name,person.hp))
def 亲(self, person):
self.ad = 10
if person.hp <= self.ad:
person.hp = 0
else:
person.hp -= self.ad
print("%s亲%s了一口小丁丁,%s掉了%s点血,%s当前血量%s" % (
self.dog_name, person.name, person.name, self.ad, person.name, person.hp))
def 舔(self, person):
self.ad = 20
if person.hp <= self.ad:
person.hp = 0
else:
person.hp -= self.ad
print("%s舔了%s的小脸蛋,%s掉了%s点血,%s当前血量%s" % (
self.dog_name, person.name, person.name, self.ad, person.name, person.hp))
小丁=Person("小丁","男","搓澡",100,"搓澡巾",1)
# print(小丁.__dict__)
小屋=Dog("小屋","仙女",100,1)
# print(小屋.__dict__)
l=["摸屁股",'种草莓',"打"]
l1=["咬","亲","舔"]
#
import time
import random
while 1:
time.sleep(1)
# c=random.random()
# if 0.9<c<1:
# 小丁.必杀技(小屋)
#
#
# else:
i=random.randint(0,2)
eval('小丁.'+l[i])(小屋)
if 小屋.hp==0:
print("小屋被你征服了了")
break
time.sleep(1)
i=random.randint(0,2)
eval('小屋.'+l1[i])(小丁)
if 小丁.hp==0:
print("小丁被小屋征服了")
break
#小丁摸了一把小屋的屁股,小屋掉了10点血,小屋当前血量90
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量95
# 小丁给小屋的脸上中了一个草莓,小屋掉了20点血,小屋当前血量70
# 小屋舔了小丁的小脸蛋,小丁掉了20点血,小丁当前血量75
# 小丁给小屋的脸上中了一个草莓,小屋掉了20点血,小屋当前血量50
# 小屋亲小丁了一口小丁丁,小丁掉了10点血,小丁当前血量65
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量45
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量60
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量40
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量55
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量35
# 小屋亲小丁了一口小丁丁,小丁掉了10点血,小丁当前血量45
# 小丁给小屋的脸上中了一个草莓,小屋掉了20点血,小屋当前血量15
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量40
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量10
# 小屋舔了小丁的小脸蛋,小丁掉了20点血,小丁当前血量20
# 小丁给小屋打了一顿,小屋掉了5点血,小屋当前血量5
# 小屋咬了一口小丁的小丁丁,小丁掉了5点血,小丁当前血量15
# 小丁摸了一把小屋的屁股,小屋掉了10点血,小屋当前血量0
# 小屋被你征服了了
以上是关于第二十二天的主要内容,如果未能解决你的问题,请参考以下文章