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

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

开发者学堂课程【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
静态方法和实例方法的区别是什么?
静态方法和实例方法的区别是什么?
292 5
|
1月前
|
Python
深入理解Python中的类方法、类实例方法和静态方法
深入理解Python中的类方法、类实例方法和静态方法
15 0
|
1月前
|
Python
深入理解Python中的类方法、类实例方法和静态方法
深入理解Python中的类方法、类实例方法和静态方法
20 0
|
3月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
73 4
|
Java
Java 类(私有属性、对象方法、类方法,构造函数)
Java 类(私有属性、对象方法、类方法,构造函数)
119 0
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
535 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
|
开发者 Python
类方法和静态方法 | 学习笔记
快速学习类方法和静态方法,介绍了类方法和静态方法系统机制, 以及在实际应用过程中如何使用。
类方法和静态方法 | 学习笔记
|
开发者 Python
图解静态方法和类方法 | 学习笔记
快速学习 图解静态方法和类方法
图解静态方法和类方法 | 学习笔记
|
C++
C++类的静态方法
C++类的静态方法
82 0
|
前端开发 开发者
class-实例方法和静态方法|学习笔记
快速学习 class-实例方法和静态方法
下一篇
无影云桌面