python类的示例使用

   类是对象的 一个具体描述, 对象的属性和方法都是通过类进行定义和设置的。 类主要
分为属性和方法,属性就好比如人的姓名、性别和学历等,用于对人的描述:方法就如人
的四肢和五宫, 可以实现某些简单的操作。

   类的定义由关键词class实现, 关键词class后面为类名, 这个可以 自定义命名:类名后
面是 一个小括号和object类, 这是Python的新式类。 Python的类分为新式类和经典类,
经典类在日常开发中不建议使用, 现在都是使用新式类进行定义。

   Python 的类可以分成两层的封装, 类在实例化时所生成的对象可看作 个已经封装好
的对象, 调用对象的属性或方法来实现某些功能, 这是类的第一 层封装。 有时候需要把类
里面的某些属性或方法封装起来, 将其设置为类的私有属性或方法, 使得这些属性和方法
只能在类的内部使用, 无法在类的外部调用, 这是类的第二层封装。
   继承常用于父母与子女之间, 比如子女的外貌长得像父母, 这是因为子女的基因来 自
于父母。 编程语言中的继承也是如此, 比如在定义Student类的时候, 可以便Student类继
承Person类, 使得子类Student拥有父类Person的所有属性和方法, 而且子类Student可重
写父类的属性和方法或自定义新的属性和方法。

下面是一个python类的综合使用代码,包括封装与继承。

import random
class Family():
    def __init__(self,surname,address,income):
        """设置家族姓氏"""
        self.surname = surname
        self.address = address
        self.income = income

class Father(Family):
    def __init__(self,name,age):
        """继承父类的动态属性"""
        super(Family,self).__init__()
        #定义动态属性
        self.name = name
        self.age = age
        self.__secret = '我外面有人'
    def action(self):
        money = random.randint(100,100)
        return money

class Mother(Family):
    def __init__(self, name, age):
        """继承父类的动态属性"""
        super(Family,self).__init__()
        self.name = name
        self.age = age
        self.__secret = '我存有很多钱'
    def action(self):
        money = random.randint(100,500)
        return -money

class Son(Family):
    def __init__(self, name, age):
        """继承父类的动态属性"""
        super(Family, self).__init__()
        #定义动态属性
        self.name = name
        self.age = age
        self.__secret = '我喜欢隔壁小花'
    def action(self):
        money =random.randint(0,100)
        return - money
if __name__ == '__main__':
    family = Family('李','广州市',1000)
    father = Father('利海',35)
    mother = Mother('赫玫丽',33)
    son = Son('豪华',10)

    #家庭自我介绍
    print('这是一个姓' + family.surname + '的家庭,他们生活在' + family.address)
    print('我是父亲一' + family.surname + father.name +',今年' + str(father.age) + '岁.'  )
    print('我是母亲一' + mother.name + ',今年' + str(mother.age) + '岁。')
    print('我是儿子一' + family.surname + son.name + ',今年' + str(son.age) + '岁.')
    #家庭费用开支
    father_money = father.action()
    family.income += father_money
    print('父亲今天赚了' + str(father_money) + '元,家庭资产剩余' +str(family.income))
    mother_money = mother.action()
    family.income +=mother_money
    print('母亲今天花了' + str(-mother_money) + '元,家庭资产剩余' + str(family.income))
    son_money = son.action()
    family.income += son_money
    print('儿子今天花了' + str(-son_money) + '元,家庭资产剩余' + str(family.income))
    #家庭成员密码
    print('父亲告诉你一个小秘密: ' + father._Father__secret)
    print('母亲告诉你一个密码: ' + mother._Mother__secret)
    print('儿子告诉你一个密码: ' + son._Son__secret)

  结果:

D:\pythonProject2\venv\Scripts\python.exe D:/pythonProject2/self1.py
这是一个姓李的家庭,他们生活在广州市
我是父亲一李利海,今年35岁.
我是母亲一赫玫丽,今年33岁。
我是儿子一李豪华,今年10岁.
父亲今天赚了100元,家庭资产剩余1100
母亲今天花了144元,家庭资产剩余956
儿子今天花了30元,家庭资产剩余926
父亲告诉你一个小秘密: 我外面有人
母亲告诉你一个密码: 我存有很多钱
儿子告诉你一个密码: 我喜欢隔壁小花

Process finished with exit code 0

  

posted @ 2021-11-30 10:43  头发重要  阅读(164)  评论(0)    收藏  举报