首页 > 编程语言 >Python面向对象基础

Python面向对象基础

时间:2024-05-29 22:00:54浏览次数:27  
标签:count __ name people Python self 基础 面向对象 print

一、前言

其实自己一直都觉得自己的编程代码能力是很垃圾的,事实也的确如此,算法算法不会,开发开发不会...今天和同学交流了一些代码。发现果然自己真的很菜啊。那就巩固一下基础吧.很久没碰,这都全忘了呀。

二、类和对象

什么是类,什么是对象。对象是类定义来的,类是无实际数据的。就是一个对象的模版。还是不懂对吧。简单来说,就是类是爸爸,对象是儿子。儿子就是爸爸这个模样刻出来的。还不懂是吧?比喻:人,就是一个类,动物也是一个类,那么对象就是。张三,李四,狗,猫。
然后类和对象之间会有一个关系叫做实例化。比如,张三 是 人 这个类的 实例对象。简单来说,张三是人的实例。
那在其他语言中,实例化一个对象,通常是 new,比如PHP:
$a = new test();
而在Python中,则是直接实例化调用。

class people:
	count = 0  #类属性
	def __init__(self,name,age):
		self.name = name #对象属性
		self.age = age
		people.count +=1
	
	def who(self):
		print(f"{self.name} is {self.age} years old.")
	
zhangsan = people("张三","80")
xiaomin = people("小名","90")
zhangsan.who()
xiaomin.who()
print(xiaoin.count)

输出:

张三 is 80 years old.
小名 is 90 years old.
2

获取类属性和实例对象属性

class people:
    count = 0

    def __init__(self, name, age,count):
        self.name = name
        self.age = age
        self.count = count
        people.count += 1

    def getinfo(self):
        print(f"{self.name} is {self.age} years old.")

    def get_class_count(self):
        print("类的属性count:",people.count)

    def get_intance_count(self):
        print("实例对象count",self.count)

zhangsan = people("张三", "80",999)
xiaomin = people("小名", "90",999)

print()

如果使用self.count,会先去找实例对象的属性,如果没有就会去找类属性。所以相要获取正确的类属性,应该直接调用people.count,但是如果是在外部就得换个方式表达。
zhangsan.__class__代表的就是people类,那么就是zhangsan.__class__.count就是寻求类的count属性。

print(zhangsan.__class__)  #获取对象的类
print(people.__base__) #获取类的父类

输出为:
<class '__main__.people'>
<class 'object'>

还有一些内置方法,例如__name__

print(zhangsan.__class__.__name__)
print(people.__base__.__name__)
输出为:
people
object

私有属性

私有属性就是只在类的内部调用,在外部不允许调用,设置方式为在属性前面加 __ 双下划线。比如__name

class people:

    count = 0
    __secretcount =999

    def __init__(self):
        self.count+=1


    def get_count(self):

        print("公共属性",self.count)

    def get_secret_count(self):

        print("私有属性:",self.__secretcount)

zhangsan = people()
zhangsan.get_count()
zhangsan.get_secret_count()
print(zhangsan.count)
print(zhangsan.__secretcount)

这里的输出就是:
image

继承

类的实践练习

标签:count,__,name,people,Python,self,基础,面向对象,print
From: https://www.cnblogs.com/iruan/p/18220984

相关文章

  • 8. CSS弹性布局基础
    第8章弹性布局基础CSS3引入了一个强大的布局模块——弹性布局(Flexbox),它提供了一种更加高效、直观的方式来排列和对齐元素,使复杂布局的实现变得更加简单。本章将详细介绍弹性布局的基本概念和属性,并通过具体示例帮助读者掌握如何使用弹性布局。8.1弹性布局简介弹性布局(F......
  • 系统架构设计师【第2章】: 计算机系统基础知识 (核心总结)
    文章目录2.1计算机系统概述2.2计算机硬件2.2.1计算机硬件组成2.2.2处理器2.2.3存储器2.2.4总线2.2.5接口2.2.6外部设备2.3计算机软件2.3.1计算机软件概述2.3.2操作系统2.3.3数据库2.3.4文件系统2.3.5网络协议2.3.6中间件2.3.7软件构件2......
  • 20231325 贾罗祁 《Python程序设计》实验四报告
    20231325贾罗祁2023-2024-2《Python程序设计》实验四报告课程:《Python程序设计》班级:2313姓名:贾罗祁学号:20231325实验教师:王志强实验日期:2024年5月15日必修/选修:公选课1.实验内容Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。课......
  • 04-Excel基础操作-学习笔记
    制作下拉列表应用场景:限制B列数据,只能输入现金、转账、支票具体操作:选中B列——数据选项卡——数据工具——数据验证——弹出界面如下图所示——点击设置——在允许栏下拉选择序列——在来源栏中填入依次“填入现金、转账、支票”,并用英文状态的逗号隔开——点击确定操作......
  • 【leetcode——栈的题目】——1003. 检查替换后的词是否有效python
    题目:给你一个字符串 s ,请你判断它是否 有效 。字符串 s 有效 需要满足:假设开始有一个空字符串 t="" ,你可以执行 任意次 下述操作将 t 转换为 s :将字符串 "abc" 插入到 t 中的任意位置。形式上,t 变为 tleft+"abc"+tright,其中 t==tleft+trigh......
  • 清华大学出版,最适合Python小白的零基础入门教程!
    伴随着云计算、大数据、AI等技术的迅速崛起,市场对Python人才的需求和市场人才的匮乏,让长期沉默的Python语言一下子备受众人的关注,再加上简单易学,使得Python一跃成为TIOBE排行榜的第一。准备学Python或者想学Python的小伙伴们可能还不晓得,Python2.x已经停止更新了,而且Python......
  • 开山之作!Python数据与算法分析手册,登顶GitHub!
    若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡。只有洞彻数据结构与算法,才能真正精通Python今天给小伙伴们分享的这份手册,是用Python描述数据结构与算法的开山之作,透彻......
  • python数据集制作中的npz文件为何保存后为空文件?
    importosimportnumpyasnpfromPILimportImagedefreadData(txt_path):print('Loadingimages........')list_file=open(txt_path,'r')content=list_file.readlines()#使用readlines()方法将文件内容读取到一个列表content中,每一行作为列......
  • 【leetcode每日一题】——2903. 找出满足差值条件的下标 I——python
    给你一个下标从 0 开始、长度为 n 的整数数组 nums ,以及整数 indexDifference 和整数 valueDifference 。你的任务是从范围 [0,n-1] 内找出  2 个满足下述所有条件的下标 i 和 j :abs(i-j)>=indexDifference 且abs(nums[i]-nums[j])>=valueDi......
  • 基础入门 one week (渗透测试常用专业术语)
    POC:全称'ProofofConcept',中文'概念验证',常指一段漏洞证明的代码。EXP:全称'Exploit',中文'利用',指利用系统漏洞进行攻击的动作。(有了POC,才有EXP)Payload:中文'有效载荷',指成功exploit之后,真正在目标系统执行的代码或指令。Shellcode:简单翻译'shell代码',是Pa......