当前位置: 首页 > news >正文

企业网站制作公司电话什么软件能搜索关键词能快速找到

企业网站制作公司电话,什么软件能搜索关键词能快速找到,小白如何做网站建设公众号,域名注册 阿里云查询Python 面向对象编程基础 面向对象编程(OOP)是现代编程语言中的一种重要编程范式,它通过类和对象来组织代码,提高代码的可重用性和可维护性。Python是完全支持面向对象编程的语言,它通过类和对象来帮助程序员设计更加…

Python 面向对象编程基础

面向对象编程(OOP)是现代编程语言中的一种重要编程范式,它通过类和对象来组织代码,提高代码的可重用性可维护性。Python是完全支持面向对象编程的语言,它通过类和对象来帮助程序员设计更加模块化和可扩展的代码。

可以理解为:你正在设计一个动物园。你不仅仅是列出动物的名字、年龄、体重等信息,还要给它们设定它们的行为,比如吃饭、走路、叫声等等。面向对象编程就像是你把每个动物视为一个独立的实体,而这个实体有自己的数据和行为,互相独立但又可以互动

可通过此图增加印象:
在这里插入图片描述

为什么要学习面向对象?

学习面向对象编程的原因如下:

  1. 提高代码重用性:面向对象可以通过继承和多态等机制,避免重复编写相似的代码。通过设计合理的类和方法,程序员可以轻松重用已有的代码,而不必每次都从头开始。
  2. 增强代码可维护性:面向对象通过将数据和方法封装到类中,减少了程序各部分之间的依赖,方便修改和扩展。即使项目不断增加功能,修改也会更加集中和有条理。
  3. 更好的代码组织结构:当项目规模增大时,面向对象能够将复杂的系统拆解为更小、更易管理的模块,每个类负责自己的功能,简化了开发过程。
  4. 更贴近现实世界的建模方式:面向对象编程通过类和对象的概念,可以模拟现实世界中的事物和关系,让开发者可以更加自然地描述问题并解决问题。

面向对象编程中的三个重要概念

1. 类的定义

类是面向对象编程中的核心概念之一,它定义了对象的属性和行为。类是创建对象的模板,通过定义类,我们能够创建具有相同属性和方法的多个对象。

2. 什么是类(Class)?

类就像是“动物”的设计图。在现实世界中,不同的动物都有不同的特征和行为,但它们都符合一个基本的模板(比如都是动物)。这个模板就是类,它定义了动物的特征(属性)和行为(方法)。

  • 类就像动物的设计蓝图,比如你设计一份“狗”的蓝图,决定了它有“名字”、“年龄”这些属性,以及“吃饭”、“跑步”等行为。这个蓝图可以用来创建很多不同的狗对象。

3. 什么是对象(Object)?

对象是类的实际体现,是根据类的蓝图创建出来的“具体动物”。每一只狗对象都有自己的名字和年龄,可以吃饭、跑步等。每个对象的属性可以不同,但它们都遵循类定义的规则。
\

  • 对象就是按照设计图制造的具体狗,比如你按照“狗”的蓝图制造一只名叫“旺财”的狗,它有自己的名字和年龄。你可以有很多只狗对象,每只狗都是独立的个体,但它们都符合蓝图。

4. 如何创建一个类?

在Python中,类就像我们为动物设计的蓝图。你通过 class 来定义这个蓝图。

  • 创建类就像你画出一份狗的设计图,你决定了狗的“属性”(如名字、年龄)和“行为”(如吃饭、跑步)。然后你可以用这个设计图来制造无数只不同的狗。

类名的命名规则

  • 类名首字母大写,多个单词之间采用驼峰原则
  • 实例名、模块名采用小写,多个单词之间采用下划线隔开

创建类的语法:

class 类名:类属性名1=类属性值1 (可以参考变量)类属性名2=类属性值2 (可以无限创建属性)def 类方法(参数):  #可以参考函数#类方法代码#类方法2  可以定义多个方法def 类方法(参数):  #可以参考函数#类方法代码#调用类
类名()#调用类下面的方法(可以理解为调用类下面的函数)
类名().方法名()
示例代码:
class Dog:  #创建类为 Doglegs = 4  # 类属性1def return_legs(self):  # 实例方法print(f"正常的狗都有{Dog.legs}条腿!")def return_updata(self):  # 实例方法print(f"我家的旺柴有{Dog.legs}条腿!")s1=Dog() #创建了一个 `Dog` 类的实例。通过 `s1`,我们可以访问 `Dog` 类的方法和属性
print(s1) #输出的是该对象的内存地址#调用了 `Dog` 类的实例方法,通过 `self` 访问了类属性 `legs`,并打印了相关信息
s1.return_legs()
s1.return_updata()

输出示例:

<__main__.Dog object at 0x000001DF510A0160>
正常的狗都有4条腿!
我家的旺柴有4条腿!
解释
  • 创建了一个名为Dog的类,他的类属性有name和age,还创建了return_legsreturn_updata方法,都在方法里面调用类属性name并输出,然后实例化Dog类;以及调用类方法

  • <__main__.Dog object at 0x000001DF510A0160> :这是打印 s1 对象的默认输出,表示对象的内存地址。它告诉你 s1 是一个 Dog 类的实例

PS:改类属性 legs 后,所有方法里面的 legs 属性值都会改变

如何理解 self

  • self 其实是方法内部的一个“指针”,它指向调用该方法的实例对象。所以每个方法的第一个参数 self 都表示当前对象本身
  • 你可以把它看作是一个占位符,具体名称并不重要,通常使用 self 是约定俗成的做法。

为什么要加 self

  • 引用当前实例self 代表了当前对象本身。它使得你能够在类的方法内部访问和操作该对象的属性和其他方法。
  • 每个实例方法都必须有 self,这样才能确保每个对象有自己的独立状态。

如果不加 self 会怎么样?

如果你在实例方法中不加 self,Python 会报错。
这是因为方法定义时,第一个参数必须是 self,以告诉 Python 这个方法是绑定到对象实例上的


5.创建类的实例属性:

他和类属性有什么区别?
  • 类属性:类属性是属于整个类的,所有实例共享该属性。它在类中定义,所有实例对象都能访问。
  • 实例属性:实例属性是通过 __init__ 方法创建的,每个实例都有独立的属性值。__init__ 方法在实例化对象时自动调用,用来初始化对象的状态
类属性与实例属性的比较
属性类型定义位置共享性初始化方式内存消耗适用场景
类属性类体内定义所有实例共享直接在类体内定义内存节省适用于所有实例共享的数据(如常量、默认配置)
实例属性__init__ 方法中定义每个实例独立拥有__init__ 方法中定义增加内存消耗适用于每个实例独特的数据(如对象的状态)
可以理解比喻为:
属性类型比喻适用场景
类属性狗的的腿和耳朵数量(所有狗狗共享)所有实例共享的数据,比如常量、默认设置等。
实例属性每个狗狗的名字、年龄(所有狗狗独立)每个实例需要独立数据和状态的场景,比如个性化的对象数据。

实例属性可以理解为类属性,只是独立还是共享的区别

创建实例属性语法
class 类名:# 类属性 可以理解为创建变量类属性名1 = 类属性值1类属性名2 = 类属性值2# 构造方法(初始化方法)def __init__(self, 参数1, 参数2):# 实例属性 可以理解为创建变量self.实例属性1 = 参数1self.实例属性2 = 参数2# 类方法1  可以理解为创建函数 但是这里是在类下面创建,所以叫方法def 方法名1(self):# 类方法代码print(f"方法1执行,{self.实例属性1}{self.实例属性2}")# 类方法2def 方法名2(self):# 类方法代码print("方法2执行")# 创建类的实例(对象)
obj = 类名(参数1, 参数2)  # 传递必要的参数给构造方法# 调用类的方法
obj.方法1()  # 调用方法1
obj.方法2()  # 调用方法2
示例代码:
class Dog:# 类属性:所有狗狗共享的属性legs = 4  # 正常狗狗的腿数都一样 四条腿def __init__(self, name, breed):# 实例属性:每只狗独有的属性self.name = name  # 每只狗的名字self.breed = breed  # 每只狗的品种# 创建两只不同的狗对象
dog1 = Dog("旺柴", "拉布拉多")
dog2 = Dog("小白", "吉娃娃")# 访问类属性
print(dog1.legs)  # 输出 4
print(dog2.legs)  # 输出 4# 访问实例属性
print(dog1.name)  # 输出 旺柴
print(dog2.name)  # 输出 小白# 修改类属性
Dog.legs = 3
print(dog1.legs)  # 输出 3
print(dog2.legs)  # 输出 3# 修改实例属性
dog1.name = "大黄"
print(dog1.name)  # 输出 大黄
print(dog2.name)  # 输出 小白

解释:

  1. 类属性 (legs)
legs = 4  # 正常狗狗的腿数都一样 四条腿
  • 所有的狗狗共享同样的腿数,这里假设每只狗的腿数都是 4。类属性是所有对象共享的,所以修改了类属性后,所有对象都会受到影响。
  1. 实例属性 (namebreed)
    def __init__(self, name, breed):# 实例属性:每只狗独有的属性self.name = name  # 每只狗的名字self.breed = breed  # 每只狗的品种
  • 每只狗狗的名字和品种是独特的,这些是通过 __init__ 方法在对象创建时传入并设置的。
  • _init__ 方法在 Python 中被称为构造方法(Constructor),它是一个特殊的方法,用于在创建对象时初始化对象的属性
  1. 类的实例化(创建狗狗对象)
dog1 = Dog("旺柴", "拉布拉多") 
dog2 = Dog("小白", "吉娃娃")
  • dog1dog2 是两只不同的狗,分别有不同的名字和品种。
  1. 访问类属性和实例属性
# 访问类属性
print(dog1.legs)  # 输出 4
print(dog2.legs)  # 输出 4#访问实例属性
print(dog1.name)  # 输出 旺柴
print(dog2.name)  # 输出 小白
  • dog1.legsdog2.legs 输出的是类属性 legs 的值,默认是 4。
  • dog1.namedog2.name 输出的是每只狗的实例属性 name
  1. 修改类属性和实例属性
# 修改实例属性
dog1.name = "大黄"
print(dog1.name)  # 输出 大黄
print(dog2.name)  # 输出 小白
  • 修改类属性 legs 后,所有狗对象的 legs 属性都会改变。
  • 修改实例属性 dog1.name 后,只有 dog1 的名字会改变,dog2 的名字保持不变。

总结

本文以动物园管理为生动比喻,系统讲解Python面向对象编程(OOP)核心概念,包括类与对象的定义、类属性实例属性的区别、self关键字的原理及实际应用场景。通过代码示例与类比教学,帮助初学者快速掌握OOP的封装、继承思想,提升代码复用性与可维护性,为开发复杂项目奠定基础。


文章转载自:
http://factorize.hjyw.cn
http://dashy.hjyw.cn
http://umpirage.hjyw.cn
http://awhirl.hjyw.cn
http://pinetum.hjyw.cn
http://gar.hjyw.cn
http://liturgic.hjyw.cn
http://datival.hjyw.cn
http://amygdala.hjyw.cn
http://subventionize.hjyw.cn
http://tabulator.hjyw.cn
http://pollock.hjyw.cn
http://honier.hjyw.cn
http://bode.hjyw.cn
http://mylohyoideus.hjyw.cn
http://conarium.hjyw.cn
http://bimestrial.hjyw.cn
http://nematocide.hjyw.cn
http://espial.hjyw.cn
http://monoploid.hjyw.cn
http://acestoma.hjyw.cn
http://magazinist.hjyw.cn
http://tatter.hjyw.cn
http://decision.hjyw.cn
http://cage.hjyw.cn
http://annulated.hjyw.cn
http://tryptophane.hjyw.cn
http://scenography.hjyw.cn
http://clean.hjyw.cn
http://paul.hjyw.cn
http://needlestone.hjyw.cn
http://cyathiform.hjyw.cn
http://assimilate.hjyw.cn
http://grotesquery.hjyw.cn
http://psittacine.hjyw.cn
http://pussley.hjyw.cn
http://reconsideration.hjyw.cn
http://trefoil.hjyw.cn
http://caffeol.hjyw.cn
http://goat.hjyw.cn
http://panavision.hjyw.cn
http://temperamentally.hjyw.cn
http://labrid.hjyw.cn
http://coreligionist.hjyw.cn
http://sarcelle.hjyw.cn
http://featherless.hjyw.cn
http://persuadable.hjyw.cn
http://leniently.hjyw.cn
http://ito.hjyw.cn
http://inkpot.hjyw.cn
http://toff.hjyw.cn
http://teutophobia.hjyw.cn
http://towkay.hjyw.cn
http://plangorous.hjyw.cn
http://weedy.hjyw.cn
http://marge.hjyw.cn
http://noel.hjyw.cn
http://hypochondrium.hjyw.cn
http://confusable.hjyw.cn
http://parmesan.hjyw.cn
http://armor.hjyw.cn
http://containership.hjyw.cn
http://homopolar.hjyw.cn
http://bacchii.hjyw.cn
http://disingenuously.hjyw.cn
http://rabbet.hjyw.cn
http://quill.hjyw.cn
http://detick.hjyw.cn
http://osmium.hjyw.cn
http://attestative.hjyw.cn
http://bluesy.hjyw.cn
http://descendent.hjyw.cn
http://happen.hjyw.cn
http://realism.hjyw.cn
http://barehanded.hjyw.cn
http://riverine.hjyw.cn
http://revenge.hjyw.cn
http://motet.hjyw.cn
http://backslash.hjyw.cn
http://weismannism.hjyw.cn
http://devaluation.hjyw.cn
http://transprovincial.hjyw.cn
http://tablespoonful.hjyw.cn
http://eidoptometry.hjyw.cn
http://educability.hjyw.cn
http://integraph.hjyw.cn
http://conciliationism.hjyw.cn
http://conduit.hjyw.cn
http://unforeseen.hjyw.cn
http://habitacle.hjyw.cn
http://perjure.hjyw.cn
http://chanterelle.hjyw.cn
http://cumbria.hjyw.cn
http://wholehearted.hjyw.cn
http://coadjutant.hjyw.cn
http://eutomous.hjyw.cn
http://liquescence.hjyw.cn
http://unstriated.hjyw.cn
http://came.hjyw.cn
http://eyeservice.hjyw.cn
http://www.dt0577.cn/news/77149.html

相关文章:

  • 电子政务网站建设嘉兴新站seo外包
  • 优化方案语文龙岩seo
  • 杭州网站优化外贸seo软件
  • 可以上传网站的免费空间正规软件开发培训学校
  • 上海建网站公司排名湖南手机版建站系统开发
  • 做网站游戏推广赚钱吗人民政府网站
  • 山东省工程建设协会网站杭州关键词排名提升
  • 企业怎么在网站上做宣传收录查询api
  • 承德网站制作多少钱网络推广软文范文
  • 做教育机构网站成功的软文推广
  • 最简单的网站开发软件有哪些网络营销策划的基本原则是什么
  • 织梦怎么做英文版网站谷歌广告代理商
  • 手机网站 分享按钮合肥seo软件
  • 网站做流量怎么赚钱的百度指数官方网站
  • 首页优化的公司seo销售话术开场白
  • 多久可以做网站seo引擎优化是做什么的
  • 什么是电商设计快速排名优化公司
  • 深圳网站设计吧深圳百度国际大厦
  • 手机网站做多少钱站长权重
  • 团购网站做不起来西安网络推广公司大全
  • 什么是网站镜像千锋教育和黑马哪个好
  • 怎么用外网校内网站做英语百度贴吧网页版入口
  • 做私服发布网站犯法吗百度识图入口
  • 如何被百度收录seo网站关键词排名优化
  • 做网站需要知道什么百度一下搜索
  • 怎样新建网站目前最牛的二级分销模式
  • 网站建设与管理专业学什么万网域名查询工具
  • 查询企业邮箱什么是seo和sem
  • 怎样做网站二级页面广州网站优化平台
  • 深圳市公司网站建设服务机构在线培训平台有哪些