• 面向对象初始


    class Human():
    animal = "高级动物"
    languae = '语言'
    walk_way = "直立行走"

    def __init__(self,name,age,eye):
    self.name = name
    self.age = age
    self.eye = eye
    print("对象初始化成功。。。")
    def work(self):
    print("是人就需要工作,不然的话,饿死")

    def eat(self):
    print("一天不吃饭,头晕眼睛花.....")


    human = Human('chris',18,"美丽的大眼睛")

    print(Human.__dict__) # 查看类的所有属性及方法

    # 对象操作对象空间
    print(human.__dict__) # 查看对象的所有属性及方法

    # 对象操作对象空间的属性
    print(human.name) # 查看对象的属性
    human.sex = 'male' # 增加对象的属性
    print(human.sex)
    human.eye = "双眼皮" # 修改对象的属性
    print(human.eye)
    del human.sex # 删除对象的属性
    # print(human.sex) # AttributeError: 'Human' object has no attribute 'sex'

    # 对象操作类空间的属性 只能查看,不能修改
    print(human.animal) # 查看类的属性,查看对象属性,先到对象空间找,再找类空间找
    human.animal = "低级动物" # 看似修改,实际是在对象空间,增加一个属性


    class GameRole:
    rule = "游戏规则"

    def __init__(self,area,nickname,hp,ad):
    self.area = area
    self.nickname = nickname
    self.hp = hp
    self.ad = ad
    def attack(self):
    print("谁施展了一个攻击")

    gailun = GameRole('德玛西呀','草丛伦',1000,75)
    yasuo = GameRole('艾欧尼亚','托儿所',500,150)

    # 1 对象为什么能调用类中的属性与方法,而且只是调用,不能改变?
    # gailun.属性名 先从自己空间去找,没有此属性他会通过 类对象指针 去类中找,类中找不到,会从父类去找
    # print(gailun.hp)
    print(gailun.attack)
    gailun.attack = 666 # 对 对象的属性 进行 赋值,如果该对象存在此属性,则是修改,不存在,则是增加属性。
    print(gailun.attack)

    gailun.rule = gailun.rule
    print(gailun.rule)

    # 对象只能查看类的属性,不能修改类的属性

    # 同一个实例化的对象之间不能相互调用
    # 不同类实例化的对象之间可以相互调用。
    print(gailun.attack)
    print(yasuo.attack)
    print(GameRole.attack)
    GameRole.attack(gailun) # 当类调用其普通方法时,不会主动传参,要在达到对象调用时的效果,就将对象空间手动传递
    gailun.attack() # 对象调用方法,会自动将对象的地址传方法的第一个参数
  • 相关阅读:
    pandas 的pd.cut()数据分箱
    pandas 的groupby()
    pandas 的DataFrame.apply()
    天池二手车_特征工程
    numpy简单的笔记
    python 面向对象编程的@property
    mybatis 复杂sql语句
    mybatis Lombok
    mybatis 获取 sqlSession
    mybatis @Param 注解
  • 原文地址:https://www.cnblogs.com/chris-jia/p/9527889.html
Copyright © 2020-2023  润新知