类方法和静态方法回顾|学习笔记

简介: 快速学习类方法和静态方法回顾

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

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


类方法和静态方法回顾

 

类方法和静态方法

1. 打印 name 属性

class Person(object) :

type = human

def _init_(self, name,age):

self.name = name

self.age = age

# 这个方法要打印 name 属性

def demo(self):

print()

print( '姓名是',self.name)

@staticmethod

def foo():

print()

p= Person( ‘zhangsan‘, 19)

p.demo()  # 实例对象调用实例方法时,会自动将实例对象传递给 self

Person. demo(p)

image.png

name 属性保存在实例对象 p上的,如果想访问 name 属性就必须要能访问到 p 的内存。

如果用对象方法,self 会指向 p 的内存。如果使用静态方法,可以通过 p.name 打印,但如果更改了对象名就会出问题。

使用对象方法在实例对象调用时,会自动将实例对象传递给 self。除了实例对象调用还可以用 Person. demo(p)类对象调用实例方法,在类对象调用实例方法时需要手动将 p 传给 self。

2.访问类属性 type

class Person(object) :

type = human

def _init_(self, name,age):

self.name = name

self.age = age

#这个方法需要访问到类属性type

@staticmethod

def foo():

print(Person.type)

@classmethod

def bar(cls):

print(cls.type)

#静态方法可以使用类对象和实例对象调用

p.foo()

Person.foo()

#类方法可以使用类对象和实例对象调用

p.bar()

Person.bar()

image.png

静态方法能否访问到一个内存空间取决于是否有变量指向这个内存空间,所以直接通过 Person.type 即可访问,静态方法可以使用类对象和实例对象调用,所以通过 Person.foo 也可以访问。

类方法可以使用类对象和实例对象调用,无论通过什么对象调用方法都会出现一个 cls 指向类对象。

Person 和 p 都是全局变量,但是 cls 和 self 只能在函数里面使用都是一个临时的指向。

3.打印 hello world

class Person(object) :

type = human

def _init_(self, name,age):

self.name = name

self.age = age

# 这个方法只需要打印 hello world

@staticmethod

def foo():

print( 'hello world")

他既没有用到实例对象里的属性也没有用到类对象的属性所以直接打印即可。

相关文章
|
2月前
|
Java
静态方法和实例方法的区别是什么?
静态方法和实例方法的区别是什么?
268 5
|
1月前
|
Python
深入理解Python中的类方法、类实例方法和静态方法
深入理解Python中的类方法、类实例方法和静态方法
20 0
|
1月前
|
Python
深入理解Python中的类方法、类实例方法和静态方法
深入理解Python中的类方法、类实例方法和静态方法
15 0
|
3月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
73 4
|
Java
Java 类(私有属性、对象方法、类方法,构造函数)
Java 类(私有属性、对象方法、类方法,构造函数)
118 0
|
Java
16 类变量(静态变量)与类方法(静态方法)
1 .静态变量 静态变量指在类中被static修饰的变量
99 0
|
Java
Java面向对象基础3——构造方法及this关键字
Java面向对象基础3——构造方法及this关键字
152 0
Java面向对象基础3——构造方法及this关键字
|
开发者 Python
类方法和静态方法 | 学习笔记
快速学习类方法和静态方法,介绍了类方法和静态方法系统机制, 以及在实际应用过程中如何使用。
类方法和静态方法 | 学习笔记
|
开发者 Python
图解静态方法和类方法 | 学习笔记
快速学习 图解静态方法和类方法
图解静态方法和类方法 | 学习笔记
|
C++
C++类的静态方法
C++类的静态方法
82 0