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

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

开发者学堂课程【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")

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

相关文章
|
8月前
|
Java
Java 类(私有属性、对象方法、类方法,构造函数)
Java 类(私有属性、对象方法、类方法,构造函数)
72 0
|
C++
C++类的静态方法
C++类的静态方法
62 0
|
Java
Java面向对象基础3——构造方法及this关键字
Java面向对象基础3——构造方法及this关键字
117 0
Java面向对象基础3——构造方法及this关键字
|
Java C++
C++类中在构造器中调用本类的另外构造器
C++类中在构造器中调用本类的另外构造器
78 0
|
开发者 Python
类方法和静态方法 | 学习笔记
快速学习类方法和静态方法,介绍了类方法和静态方法系统机制, 以及在实际应用过程中如何使用。
79 0
类方法和静态方法 | 学习笔记
|
开发者 Python
图解静态方法和类方法 | 学习笔记
快速学习 图解静态方法和类方法
62 0
图解静态方法和类方法 | 学习笔记
|
前端开发 开发者
class-子类访问父类上的实例方法|学习笔记
快速学习 class-子类访问父类上的实例方法
80 0
|
前端开发 开发者
class-实例方法和静态方法|学习笔记
快速学习 class-实例方法和静态方法
59 0
|
Python
一日一技:什么情况使用静态方法和类方法?
一日一技:什么情况使用静态方法和类方法?
205 0
一日一技:什么情况使用静态方法和类方法?
|
Python
python方法的分类(实例方法、类方法、静态方法)
很多童鞋会比较疑惑,方法和函数有什么区别,都是通过def去定义的啊? 只需要记住一点,方法是用来描述一个目标的行为动作! 不论你是直接通过 类名.方法调用,还是通过由类生成的实例.方法调用。 方法都需要有一个目标才能完成调用的操作。
127 0