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

    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() # 对象调用方法,会自动将对象的地址传方法的第一个参数
  • 相关阅读:
    Python入门-函数进阶
    Python入门-初始函数
    Leetcode300. Longest Increasing Subsequence最长上升子序列
    Leetcode139. Word Break单词拆分
    Leetcode279. Perfect Squares完全平方数
    Leetcode319. Bulb Switcher灯泡开关
    Leetcode322. Coin Change零钱兑换
    二叉树三种遍历两种方法(递归和迭代)
    Leetcode145. Binary Tree Postorder Traversal二叉树的后序遍历
    Leetcode515. Find Largest Value in Each Tree Row在每个树行中找最大值
  • 原文地址:https://www.cnblogs.com/chris-jia/p/9527889.html
Copyright © 2011-2022 走看看