zoukankan      html  css  js  c++  java
  • 面向对象

    面向对象核心是:对象
    对象是一系列特征与技能的结合体
    优点:可扩展性强
    缺点:编写复杂
    如何创建对象?先学会定义类
    什么是类?
    存放多个对象相同数据功能的容器
    如何定义类
    关键字:class
    名字采用驼峰体,类代码执行之后产生的名字放到名名称空间
    使用__dict__可以看到类,或对象内的名称空间

    类的实例化——加括号调用,才能产生对象

    调用类发生的事情:
    1,会产生一个空对象的名称空间
    2.会自动触发__init__,并将对象当做第一参数传入
    3,会将调用括号内参数一并传给__init__()

    查看类与对象的名称空间 .dict

    类和对象的属性工作:增删改查
    增:直接·加要增加关键字,之后复制符号=值
    删:del People.country
    改:对已存在的参数进行句点符调用,等号
    查:句点符,print已有属性

    类中的属性最终都是给对象使用,对象引用类中的属性指向的都是同一个内存地址

    类中方法,def 也是给对象使用的,在调用类实例化的时候,会将对象当做第一参数传入,

    对象属性的查找顺序,先从对象自己的名称空间找,————》再在类的名称空间查找

    对象绑定的特殊:
    1,会将对象当做第一个参数传入
    2,若绑定方法中还有其他函数,一并出入

    案例,人狗大作战——
    class People:
    def init(self,name,life,arg):
    self.name= name
    self.life = life
    self.arg = arg
    def bite(self,dog_obj):
    print(f'{self.name}开始咬{dog_obj.name}')
    dog_obj.life-=self.arg
    print(f'{dog_obj.name}生命减掉{self.arg},还剩下血量{dog_obj.life}')
    if dog_obj.life<=0:
    print(f'{dog_obj.name}已经挂了')
    return True

    class Dog:
    def init(self,name,life,dogtype,arg):
    self.name = name
    self.life = life
    self.dogtype = dogtype
    self.arg = arg
    def bite(self,p_obj):
    print(f'{self.name}开始咬人{p_obj.name}')
    p_obj.life -=self.arg
    print(f'{p_obj.name}生命值减到{p_obj.life},掉{self.arg}血')
    if p_obj.life<=0:
    print(f'{p_obj.name}已经挂')
    return True

    p1 = People('高弟', 2000, 500)
    d1 = Dog('HCY', 250, '哈士奇', 2500)

    p2 = People('高弟2', 5000, 50)
    import time

    while True:
    # 开始人狗互咬
    # if p1.life or d1.life:
    res1 = d1.bite(p2)

    if res1:
        break
    
    time.sleep(1)
    
    res2 = p1.bite(d1)
    
    if res2:
        break
    
    time.sleep(1)
  • 相关阅读:
    C# 实现 Snowflake算法生成唯一性Id
    kafka可视化客户端工具(Kafka Tool)的基本使用(转)
    docker 安装kafka
    Model类代码生成器
    使用docker 部署rabbitmq 镜像
    Vue 增删改查 demo
    git 提交代码到库
    Android ble蓝牙问题
    mac 配置 ssh 到git (Could not resolve hostname github.com, Failed to connect to github.com port 443 Operation timed out)
    okhttp
  • 原文地址:https://www.cnblogs.com/fxsm/p/11937149.html
Copyright © 2011-2022 走看看