python的类

菜鸟讲解:类的基本概念
基本概念:
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
方法: 类中定义的函数。
类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员: 类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
局部变量: 定义在方法中的变量,只作用于当前实例的类。
实例变量: 在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化: 创建一个类的实例,类的具体对象。
对象: 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

self关键字如何用

1.在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数。例如,定义一个 Animal 类

class Animal:def __init__(self):print("正在执行构造方法")# 定义一个eat()实例方法def eat(self,name):print(name,"正在吃东西")

事实上,Python 只是规定,无论是构造方法还是实例方法,最少要包含一个参数,并没有规定该参数的具体名称。之所以将其命名为 self,只是程序员之间约定俗成的一种习惯,遵守这个约定,可以使我们编写的代码具有更好的可读性(大家一看到 self,就知道它的作用)。他就好比C++中的this指针。也就是说,同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,Python 会自动绑定类方法的第一个参数指向调用该方法的对象。如此,Python解释器就能知道到底要操作哪个对象的方法了。

class Animal:def __init__(self):print("正在执行构造方法")# 定义一个eat()实例方法def eat(self):print(self,"正在吃东西")
cat = Animal()
cat.eat()
dog = Animal()
dog.eat()

执行结果如下图:
正在执行构造方法
<main.Animal object at 0x000001AA1F8C7D60> 正在吃东西
正在执行构造方法
<main.Animal object at 0x000001AA1F8C7D30> 正在吃东西

2.值得一提的是,除了类对象可以直接调用类方法,还有一种函数调用的方式,例如:

class Person:def who(self):print(self)
zhangsan = Person()
#第一种方式
zhangsan.who()
#第二种方式
who = zhangsan.who
who()#通过 who 变量调用zhangsan对象中的 who() 方法

也就是说,我们定义的类中的方法,都必须有一个默认的参数,指这个类对象。不会打印出来,并且,调用的时候括号里无需传参(如果定义类方法时只有self一个参数的时候)。

python类中self关键字用法相关推荐

  1. python 函数参数self_Python类中self参数用法详解

    Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是s ...

  2. Java类中this关键字和static关键字的用法详解

    今天给大家总结介绍一下Java类中this关键字和static关键字的用法. 文章目录 this关键字用法: 1:修饰属性,表示调用类中的成员变量 2:this修饰方法 3:this表示当前对象的引用 ...

  3. python类中包含类_彻底搞懂Python中的类

    Python类的定义 Python 中定义一个类使用 class 关键字实现,其基本语法格式如下:class 类名: 多个(≥0)类属性... 多个(≥0)类方法... 注意,无论是类属性还是类方法, ...

  4. python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...

    python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...

  5. Python类中的私有属性和私有方法

    Python类中的私有属性和私有方法 Python是面向对象的语言,在Python里一切皆对象,所以大部分情况下,我们都是通过类的方式来编程. 但是Python中的属性和方法在类的外部默认是可以访问的 ...

  6. C++中const关键字用法详解及实例和源码下载(一)

    最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...

  7. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  8. python 类中静态变量_Python中的类或静态变量

    python 类中静态变量 Python类/静态变量 (Python Class / Static Variables) Class or Static variables are class-rel ...

  9. python 类中的 __getitem__方法

    经常会遇到python类中遇到一些特殊的方法,最常见的就是__ini__方法,想必大家都遇到过,今天来谈谈另外一种非常好用的类方法--__getitem__ 来点干货, __getitem__的作用是 ...

最新文章

  1. java编写最大公约数_Java编写最大公约数和最小公倍数
  2. Windows下安装python的pip
  3. 【Python】青少年蓝桥杯_每日一题_12.11_开关灯问题
  4. Codeforces 1110 简要题解
  5. Nginx配置中的log_format用法梳理(设置详细的日志格式)
  6. manjaro 安装tensorflow 【CPU版本】 环境
  7. 企业级私有registry Harbor通过https访问的详细配置
  8. 策划入门(二)如何写一个项目建议书
  9. SHFileOperation DeleteFolder
  10. Vue + ElementUI 实现一个动态添加元素的小例子
  11. pytorch crnn 笔记(二)
  12. 一小时快速建立数据分析平台
  13. 网络请求及各类错误代码含义总结(Errors Code)
  14. Magento二次开发哪家好呢?
  15. 我喜欢的LaTex编辑器
  16. 斯坦福高效睡眠法Xmind图
  17. 20180423-B · Australian Salaries by Gender · ggplot2 ggalt geom_dumbbell 棒棒糖图 哑铃图 · R 语言数据可视化 案例 源码
  18. vulnhub靶场——THE PLANETS:EARTH
  19. c#开发wps插件(3)部署
  20. python数据挖掘需要学的内容

热门文章

  1. python 函数结果缓存一段时间的装饰器
  2. LeetCode#70 Climbing Stairs
  3. struts2上传文件
  4. 少了unicon-tools是不行滴
  5. Python稳基修炼的经典案例11(计算机二级、初学者必会输入输出训练)
  6. express html页面,Express使用html模板
  7. java单链表存储结构_Java数据结构——单链表
  8. conda内部python卸载了_使用conda安装软件包如何更改我的python版本并删除co​​nda?...
  9. mongodb创建数据库用户名和密码_Linux运维老司机,教你MongoDB 的不同连接方式
  10. 微课|玩转Python轻松过二级(2.4节):常用内置函数用法精要1