首页 > 编程语言 >二十八、Python基础语法(面向对象-下)

二十八、Python基础语法(面向对象-下)

时间:2024-11-01 22:18:59浏览次数:3  
标签:__ name 二十八 Python self Dog 面向对象 print 属性

一、self

从函数的语法上来看, self 是形参 , 是一个普通的参数,那么在调用的时候,就需要传递实参值。从调用上看, 我们没有给 self 这个形参传递实参值, 但是 Python 解释器会自动的将调用这个方法的对象,作为实参值传递给 self。

class Dog:

    def eat(self):
        print('小狗吃骨头')
        print(id(self))


dog1 = Dog()
print(id(dog1))
dog1.eat()
print('*' * 20)
dog2 = Dog()
print(id(dog2))
dog2.eat()

运行结果:

总结:self 就是调用这个方法的对象

二、属性

属性是每个对象都有的,每个对象都会由内存空间来保存自己的属性学习,属性可以在类内部处理,也可以在类外部处理,不是是在内部还是外部,都是通过对象操作的。

获取对象的属性:对象.属性名

添加或者修改属性:对象.属性名 = 值

class Dog:

    def eat(self):
        print(f'小狗{self.name}吃骨头')


dog1 = Dog()
# 添加属性
dog1.name = '旺财'
dog1.eat()
print('*' * 20)
dog2 = Dog()
# 添加属性
dog2.name = '阿黄'
dog2.eat()

运行结果:

 

注意:一般不在类外部操作对象的属性,添加属性的操作,都写在 __init__ 方法里面

三、魔法方法

魔法方法:在Python 中有一类方法,以两个下划线开头, 两个下划线结尾, 并且在满足某个条件的情况下会自动调用。

1.__init__ 初始化方法

__init__用来给对象添加属性,添加的所有的属性都写在这个方法中,在创建对象时,会自动调用。

class Dog:

    def __init__(self):
        print('我被调用了')


Dog()  # 创建对象,会调用
dog1 = Dog()  # 会
dog2 = dog1  # 不会
class Dog:

    # 给对象添加属性
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(f'小狗{self.name}吃骨头')


dog1 = Dog('旺财')
dog1.eat()
print('*' * 20)
dog2 = Dog('阿黄')
dog2.eat()

运行结果:

2.__str__ 方法

__str__作用自定义返回对象的属性说明信息,print(对象) 时,会自动调用 __str__ 方法,会输出__str__方法的返回值。

class Dog:

    # 给对象添加属性
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return f'这个对象包含一个属性,名称是{self.name}'

    def eat(self):
        print(f'小狗{self.name}吃骨头')


dog1 = Dog('旺财')
print(dog1)  # 这个对象包含一个属性,名称是旺财
print('*' * 20)
dog2 = Dog('阿黄')
print(dog2)  # 这个对象包含一个属性,名称是阿黄

标签:__,name,二十八,Python,self,Dog,面向对象,print,属性
From: https://blog.csdn.net/CSXB99/article/details/143439902

相关文章

  • 二十六、Python基础语法(函数进阶-下)
    一、多值参数多值参数(可变参数、不定长参数):有的函数不确定参数有几个,在一个普通的参数前面加上一个*,这个参数就变为不定参数。可以接收任意多个位置传参的数据,类型为元组。deftest(name,*args,sex='男'):print(name,args,sex)#传递3个参数test('张三',25,se......
  • 初识Python从入门到精通—— 语法及入门 1( 专为Python零基础)
    本文前4章为学习python的辅助章节,简单了解即可,可根据自身情况进行选择学习。程序:指挥计算机工作的指令序列。1.计算机如何处理程序?按照冯·诺依曼存储程序的原理,计算机的工作流程大致如下:1.用户打开程序,程序开始执行;2.操作系统将程序内容和相关数据送入计算机的内存......
  • Java实验三 面向对象编程
    1.编写Java代码实现一个计数器类“Counter”,其中包含域“counterValue”用来保存计数器的当前数值、方法“increment()”使计数器加一、方法“decrement()”使计数器减一、方法“reset()”使计数器清零。构造计数器类的对象,并使用。packageproject;publicclassCounter......
  • 毕业设计:电影推荐系统 协同过滤推荐算法 深度学习 Python 爬虫 豆瓣电影 LSTM算法✅
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • 手把手教你安装Python解释器!
    文章目录解释器下载安装教程1、先勾选“Addpython.exetoPATH”,再点击“InstallNow”2、等待安装成功后点击“Disablepathlengthlimit”1、使用“Win键+R”呼出运行窗口并输入“cmd”在弹出的窗口中输入“python--version”并回车解释器下载https://pan.quar......
  • 基于Python+Vue开发的健身房管理系统
    项目简介该项目是基于Python+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的健身房管理系统项目,大学生可以在实践中学习和提升自己......
  • 从零开始的python打怪升级日记 day1
    《python基础篇》......
  • DATA 2100 Major Python Programming
    DATA2100MajorHomeworkPythonProgramming100pointsPurposeInthisassignment,studentswillapplytheir(Python)programmingskillstodevelopadataentryapplicationthatvalidatesentriesagainstadatabaseandthenrecordsvalidentriestothesamed......
  • VBA和Python到底哪个比较难学
    标题:VBA和Python到底哪个比较难学摘要:对于编程初学者,VBA和Python的学习难度受多种因素影响,如个人编程基础、学习环境和目标任务。1、Python通常被视为入门友好的语言;2、VBA深入与Office应用协同工作;3、资源丰富程度;4、语言灵活性与功能性;5、社区支持;6、个人学习倾向。在这些......
  • 使用wxpython开发跨平台桌面应用,实现程序托盘图标和界面最小化及恢复处理
    在前面随笔《基于wxpython的跨平台桌面应用系统开发》介绍了一些关于wxpython开发跨平台桌面应用的总体效果,开发桌面应用,会有很多界面细节需要逐一处理,本篇随笔继续深入该主题,对开发跨平台桌面应用的一些实现细节继续深入研究并总结,介绍程序托盘图标和界面最小化及恢复处理。1、......