首页 > 编程语言 >Python基础-类与对象

Python基础-类与对象

时间:2024-06-20 20:28:50浏览次数:25  
标签:__ .__ name Python self 基础 对象 print def

1.面向对象的三大特性

  • 封装
  • 继承
  • 多态

2.类与对象的理解与封装特性

类是事物抽象的集合,对象是事物具象的个体。(类–>实例化–>对象)

面向对象编程语言

  • 类: 一个模板, (人类)—是一个抽象的, 没有实体的
  • 对象: (eg: 张三, 李四)
  • 属性: (表示这类东西的特征, 眼睛, 嘴巴, 鼻子)
  • 方法: (表示这类物体可以做的事情, eg: 吃饭, 睡觉,学习)

3.定义类

格式:class 类名(object)

object代表是, 人类继承于哪一个类, 如果不知道继承哪个类, 就写object

class person(object):
    #构造函数
    def __init__(self,name,age,sex) -> None:
        self.name = name
        self.age = age
        self.sex = sex
        pass
    
    #say函数
    def say(self,say):
        print("%s在说话:%s"% (self.name, say))
        pass

    #使用print,返回return的内容
    def __str__(self) -> str:
        return "Persons类的对象 姓名:%s, 年龄:%s, 性别:%s" % (self.name, self.age, self.sex)
        pass
    
    def __del__(self):
        print("名字为%s的对象销毁,执行析构函数"% self.name)
        pass

# 类实例化为对象
p1 = person("deng",18,"男")
p2 = person("xiaodeng",20,"女")

# 调用say函数
p1.say("hello world")

# 使用print,返回__str__(self)中return的内容
print(p1)
print(p2)

# 使用del,返回__del__(self)中return的内容
del p1
del p2

3.类的私有属性与方法

实例:定义一个关于银行用户的类

# 定义一个关于银行用户的类
class BankUser():
    # 定义构造函数
    def __init__(self,username, password, money) -> None:
        self.__username = username  # 在属性名前加上__变为私有属性
        self.__password = password
        self.__money = money

    # 显示用户名的方法(公共方法)
    def showName(self) -> str:
        return self.__username
    
    # 显示用户余额的方法(公共方法)
    def showAccount(self) -> float:
        return self.__money
    
    # 取款的方法
    def withdrawal(self, count) -> bool:
        password = input("请输入帐户密码:")
        # 判断密码
        if password != self.__password:
            print("密码错误")
            return False
        
        # 判断余额
        if count > self.__money:
            print("帐户余额不足")
            return False
        
        # 取款成功
        self.__money -= count
        print('取款成功。帐户余额为:%s'% self.__money)
        
    def __test(self):
        print("这是一个私有的测试方法")
        
    def publicTest(self):
        print("这是一个公有的测试方法")
        # 调用私有的方法
        self.__test()
         
    
    def __str__(self) -> str:
        return "用户:%s, 存款余额为:%s"%(self.__username, self.__money)
    
    
user1 = BankUser("alex", "123123", 1000)

print(user1)
print(user1.showName())  #通过公共方法来执行私有属性
print(user1.showAccount())  #通过公共方法来执行私有属性

# user1.__test()    #调用不了,需要通过一个公共方法来调用这个私用方法,如下所示
user1.publicTest()

# user1.withdrawal(500)

4.类的继承

# 定义一个动物类(基类)
class Animals(object):
    def __init__(self, name, age):
        self.name = name
        self.age= age
        print("动物类的构造函数执行完成")
        
        
    def eat(self):
        print('eating......')
        
# 定义一个狗类(派生类)
class Dog(Animals):
    def __init__(self, name, age, type):
        # 先执行父类的构造函数
        super().__init__(name, age)  # super()方法指向类父
        
        # 添加该类的新的属性
        self.type = type
        print("狗类的构造函数执行完成")
        
    # 狗吃的东西的类进行重写
    def eat(self):
        super().eat()
        print("我喜欢吃骨头")
    
    pass

class Cat(Animals):
    def __init__(self, name, age, color):
        super().__init__(name, age)
        self.color = color
        
    def eat(self):
        super().eat()
        print("我喜欢吃鱼")  

dog1 = Dog("旺财", 2, "中华田园犬")
print(dog1.type)
dog1.eat()

cat1 = Cat("咪咪", 3, "奶牛色")
print(cat1.color)
cat1.eat()

标签:__,.__,name,Python,self,基础,对象,print,def
From: https://blog.csdn.net/weixin_53598426/article/details/139840762

相关文章

  • Python Decimal 高精乘法
    Python的decimal库提供的高精度整数Decimal能执行非常高效的乘法运算。代码示例FFT模板题(P1919【模板】高精度乘法|A*BProblem升级版)AC代码:fromdecimalimportDecimal,setcontext,Contextsetcontext(Context(prec=2000005,Emax=2000005))a=Decimal(in......
  • Python 资源大全中文版
    awesome-python 是vinta发起维护的Python资源列表,内容包括:Web框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由「开源前哨」和「Python开发者」微信公号团队维护更新。本项目的参与者......
  • 用python写——猜数字小游戏2
    importrandomnum=random.randint(1,100)count=0flag=Truewhileflag:guess_num=int(input("请输入你要猜测的数字:"))count+=1ifguess_num==num:print("恭喜你,猜对了")flag=Falseelse:ifguess_n......
  • python基础语法
    目录字面量注释变量标识符运算符字符串扩展数据输入字面量字面量:在代码中,被写出来的固定的值,称之为字面量。python中常用的有6种值(数据)的类型:注释注释:在程序代码中对程序代码进行解释说明的文字。作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可......
  • GitHub爆赞!最适合新手入门的教程——笨方法学Python 3
    “Python是一门既容易上手又强大的编程语言。”这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多Python程序员只用到了其强大功能的一小部分。今天给小伙伴们分享的这份手册以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现。这份......
  • GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
    这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Pytho......
  • python 基础习题6--for循环和while循环
    1.用for循环打印1--10这10个数字,格式如下:运行结果如下: 12345678910 2.用 while循环打印1-10这个10个数字,请在横线处填空:counter=1whilecounter<= ________:print(counter)___________ 3.请问这段代码返回什么结果:(可以在环境中......
  • python数据分析-心脏瓣膜手术风险分析与预测
    一、研究背景和意义人的心脏有四个瓣膜,主动脉银、二尖、肺动脉和三尖源不管是那一个膜发生了病变,都会导致心脏内的血流受到影响,这就是通常所说的心脏期膜病,很多是需要通过手术的方式进行改善的。随着人口老龄化的加剧,,心脏期膜病是我国最常见的心血管疾病之-,需要接受心脏瓣......
  • JAVA基础——接口(全网最详细教程)
    概述我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。  把特有的方法(行为)写成接口,要用的时候调用接口就行了,除了狗和青蛙......
  • Python入门_基础理论_全网详细版
    (根据黑马教程整理)第二章01-字面量0.6数据的类型1.掌握字面量的含义代码中,被写在代码中的固定值,称之为字面量2.常见的字面量类型整数、浮点数、字符串3.基于print语句完成各类字面量的输出print(10)print("今天是23年2月22日")第二章02-注释1.单行注释:#2.......