首页 > 其他分享 >面向对象基础,定义类和对象(构造函数)

面向对象基础,定义类和对象(构造函数)

时间:2023-11-24 13:32:17浏览次数:35  
标签:__ 定义 对象 self 面向对象 实例 构造函数 方法 属性

类和对象的定义

类:就是具有相同属性和功能的一类事物 --抽象

对象:就是类的具体表现形式 --具体表现

类的语法

class 类名:

属性(类中定义的变量)

方法(类中定义的函数)

class:类的关键字

类名:首字母大写,其他部分遵循驼峰命名原则

属性:符合标识符命名规则

方法:函数,见名知意,符合标识符命名规则

对象的语法

类的实例化过程就叫对象,产生的每个对象都可以具有自己的特征

对象名 = 类名()

实例化对象的操作方法

对象名.方法名(参数列表)

调用属性值:

对象名.属性:在类外部使用

self.属性:在类内部使用

更新属性值:对象名.属性 = 新值 或者 类名.属性 = 新值

注:对象修改属性值后,此对象访问的属性值是修改后的值,其他对象访问的属性值还是原来的值

类修改属性后,所有类中的对象访问的属性,都是修改后的值

self就是实例对象本身,无需传值

构造方法

在python类中,有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用,此方法可以为类实现初始化的作用。

注:__init()__方法,在实例化对象是必须要对自定义的参数给定值,否则会报错,

若构造方法内有执行语句,那么在实例化本类的时候就会执行

类的属性操作

类整体由2部分组成:属性、方法。

其中属性有类属性,成员属性(实例属性),内置属性三种

类属性:类内部,方法外部的属性

实例属性:构造方法内的属性

内置属性:python自带的

方法则有构造方法,实例方法,类方法,静态方法和属性方法四种

构造方法:__init__

实例方法:def 方法名(self),跟普通方法基本一致,默认第一个参数为self,self 代表的是实例对象,且只能被实例对象调用。

self.实例方法名() ---类内部调用

对象名.实例方法名() ---类外部调用

所有的属性和方法都有2种形态,公有和私有。

公有成员,在任何地方都能访问

私有成员,只有在类的内部才能访问(以__开头命名)

注:实例方法中定义的变量只能在本实例方法使用

修改实例属性

self.属性名 = 新值 ---类内部使用

对象.属性名 = 新增 ----类外部使用

内置属性:python自定义的一些属性,通过调用来获取对应类的相关属性信息。常见的有

[类名].__dict__:打印类的所有属性与方法(包括继承自基类的属性和方法)(包括内置属性和方法)

[对象].__dict__:打印对象的所有属性(私有和公有)

[类名].__name__: 打印出类名

标签:__,定义,对象,self,面向对象,实例,构造函数,方法,属性
From: https://blog.51cto.com/u_16324710/8548813

相关文章

  • 区域菜单定义及查找
    1、AreaMenu的定义和查找在标准系统中,SAP已经定义出了大量的AreaMenu,例如TDMN(CashManagement),WEDI(IDocandEDIBasis)等,我们可以直接使用。当然,通过事务代码SE43,我们也可以定义自己的AreaMenu。 2、se93可以通过where-used的方式,反查到与其相关的AreaMenu。 ......
  • Service 服务详解 及自定义服务模板
    文章目录1、服务简介2、服务的生命周期1)Service的启动停止2)、服务的生命周期的方法3、使用startService启动后服务的生命周期1)、文件结构2)activity_main.xml文件3)、myService自定义服务文件4)、MainActivity文件5)、AndroidManifest.xml文件6)、打印的相关log5、使用bindS......
  • C# 中定义自己的ThreadPoolQueue
    目录一背景二源码及分析2.1源码展示2.2源码分析2.2.1定义ActionItemInfo2.2.2定义AutoProcess属性2.2.3分析ProcessQueuedActionItems方法一背景在实际的开发过程中,我们经常有一种需求就是我们的任务需要放到线程池中进行执行,并且这些任务需要逐一放到Queue中进行独立......
  • Java开发者的Python快速进修指南:面向对象基础
    当我深入学习了面向对象编程之后,我首先感受到的是代码编写的自由度大幅提升。不同于Java中严格的结构和约束,Python在面向对象的实现中展现出更加灵活和自由的特性。它使用了一些独特的关键字,如self和cls,这些不仅增强了代码的可读性,还提供了对类和实例的明确引用。正如Java,Python也......
  • uniapp+vue3中使用swiper和自定义header实现左右滑动的Tabs功能
    首先创建一个Tabs的Header,包含有一个下划线的指示器,在点击tabs的标题时候下划线会跟着动态的滑动下面是完整的Tabs的代码,可以看到定义了Tabs的background颜色样式,包含tab的宽度indicatorWidth,以及下划线的颜色indicatorColor主要的是tabList属性,通过tabList传入对应的tab数组得......
  • 数组(1)数组定义及典例
    <1>数组定义(1)引入数组概念:————用于记录很多同类型的数字格式:类型变量名称[元素数量];——举例:intgrades[100];元素数量必须是整数;数组功能及特点:功能:1.相当于存放数据的容器;特点:1.一旦创建不可改变大小;2.其中所有元素具有相同的数据类型;3.数组中的元......
  • Golang学习笔记-自定义日志轮转及输出
    packagepkgimport( "fmt" "log" "log/slog" "os" "time")varcontrolLogger*slog.LoggervarfileLogger*slog.Loggerconst( timeFormat="2006-01-02")funcInitLog(filepathstring){......
  • Vue自定义页面路由
    错误1:webpackEmptyContext(evalat./src/store/modulessyncrecursive(0.js:10),<anonymous>:2:10)路由信息由后端给出,那么前端需要动态加载路由,同时component的路径也是后端给出,但是动态加载该路径会报错//假如path='@/views/user'constcom=()=>import(path)//这......
  • 构造函数的执行顺序
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceBCode_Framework_ConsoleApp{classProgram{staticvoidMain(string[]args){Customercust......
  • 面向对象04:类与对象的创建
     ......