图解静态方法和类方法 | 学习笔记

简介: 快速学习 图解静态方法和类方法

开发者学堂课程【Python入门 2020年版图解静态方法和类方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10382


图解静态方法和类方法


内容介绍:

一、  实例方法

二、  类方法

三、  静态方法


一、实例方法

class Person(object) :

type =  'human'

def _init___( self, name,age) :

self.name = name

self.age = age

def eat( self food):

print(self.name + '正在吃’+ food)

p1 = Person('张三'18)

p1.eat('红烧牛肉泡面')

Person.eat(p2西红柿鸡蛋盖饭')

Person.demo()

p1.demo()

p1.test()

Person.test()

在整段代码中有三种类型的方法。

实例方法:会用到实例对象的属性, self 指向调用这个方法的实例对象。

两种调用方式:

1.实例对象.方法名==>不需要手动给 self 传参,会自动将实例对象传递给 self

2.类对象.方法名==>需要手动的给 self 传参。

image.png

方式调用有两种,一种是通过 p1 调用,另一种是通过类名调用。


二、类方法

class Person(object) :

type =  'human'

def _init___( self, name,age) :

self.name = name

self.age = age

@classmethod

def test(cls ):

print( cls.type)

print( 'yes ' )

p1 = Person('张三'18)

p1.eat('红烧牛肉泡面')

Person.eat(p2西红柿鸡蛋盖饭')

Person.demo()

p1.demo()

p1.test()

Person.test()

类方法:

会有一个参数 cls,这个 cls 指的是类对象。如果一个方法只使用到类属性,可以将这个方法定义为类方法。

image.png

在内存里有两个区块,Person 指向第一块内存,person 里有 type = ‘human’ , p1里有 name:张三,18

一个实例对象一个类对象,如果这个方法需要访问实例对象的属性,self 会指向 p1

如果想用到类属性,可以把方法定义为类方法,一般类方法配合类属性使用,只要加了装饰器之后 cls 就会自动指向类对象,可以通过类对象来访问类属性。


三、静态方法

class Person(object) :

type =  'human'

def _init___( self, name,age) :

self.name = name

self.age = age

@staticmethod

def demo( ):

print( ‘hello')

p1 = Person('张三'18)

p1.eat('红烧牛肉泡面')

Person.eat(p2西红柿鸡蛋盖饭')

Person.demo()

p1.demo()

p1.test()

Person.test()

image.png

静态方法:

如果一个方法,即用不到实例对象,也用不到类对象,可以把这个方法定义为静态方法。

class Calculator(object) :

@staticmethodI

def add(a, b):

return a+ b

@staticmethoddef minus(a b):

return a – b

@staticmethoddef mul(a b):

return a*b

print(calculator.add(2,3))

在没有面向对象的思维之前代码都是由函数组成的,在面向对象之后代码会有更大的一个范围,在这个类中没有用任何属性,将方法加上修饰器 @staticmethod 变成静态方法,这是就可以不用创建对象,直接用类名调用方法。

相关文章
|
存储 算法 程序员
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
374 0
|
容器
《LeetCode》——LeetCode刷题日记1
《LeetCode》——LeetCode刷题日记1
125 0
|
安全 程序员 编译器
【C语言】const 关键字详解
`const`关键字在C语言中用于定义常量,提供只读的变量。这意味着一旦初始化,`const`变量的值不能再被修改。下面详细介绍`const`关键字的用法、作用以及其在不同上下文中的应用。
720 2
|
8月前
|
数据采集 SQL 人工智能
长文详解|DataWorks Data+AI一体化开发实战图谱
DataWorks是一站式智能大数据开发治理平台,内置阿里巴巴15年大数据建设方法论,深度适配阿里云MaxCompute、EMR、Hologres、Flink、PAI 等数十种大数据和AI计算服务,为数仓、数据湖、OpenLake湖仓一体数据架构提供智能化ETL开发、数据分析与主动式数据资产治理服务,助力“Data+AI”全生命周期的数据管理。
1379 5
|
JavaScript
js实现省市区三级联动
js实现省市区三级联动
298 0
|
Linux 网络安全 数据库
收集站点信息:第三方网站查询(附链接)
收集站点信息:第三方网站查询(附链接)
|
人工智能 数据挖掘 项目管理
如何让数字化转型服务于小型企业
如何让数字化转型服务于小型企业
|
存储 弹性计算 监控
阿里云企业邮箱怎么样?企业邮箱详细介绍
阿里云企业邮箱怎么样?企业邮箱详细介绍
1441 0
图表解析系列之饼图
● 想要突出表示某个部分在整体中所占比例; ● 分类数量最好不大于 5 个; ● 各不同分类间的占比差异明显。
图表解析系列之饼图
|
SQL 关系型数据库 MySQL
Eclipse可视化操作MySQL数据库
Eclipse可视化操作MySQL数据库
283 0