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

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

开发者学堂课程【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天前
|
开发者
静态方法和实例方法的区别是什么?
静态方法和实例方法在面向对象编程中各自扮演着重要的角色,开发者需要根据具体的业务需求和设计原则来合理地使用它们,以实现高效、可读和易于维护的代码结构。
49 12
|
4天前
静态方法和实例方法有何不同?
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制
|
8天前
在类中使用静态方法和实例方法有什么区别?
在类中合理地使用静态方法和实例方法,可以更好地组织和管理代码,提高代码的可读性、可维护性和性能,根据具体的业务需求和逻辑来选择使用哪种方法是编写高质量面向对象代码的关键。
|
1月前
|
Python
深入理解Python中的类方法、类实例方法和静态方法
深入理解Python中的类方法、类实例方法和静态方法
24 0
|
1月前
|
Python
深入理解Python中的类方法、类实例方法和静态方法
深入理解Python中的类方法、类实例方法和静态方法
16 0
|
3月前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
78 4
|
Java
Java 类(私有属性、对象方法、类方法,构造函数)
Java 类(私有属性、对象方法、类方法,构造函数)
121 0
|
Java
16 类变量(静态变量)与类方法(静态方法)
1 .静态变量 静态变量指在类中被static修饰的变量
99 0
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
538 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
|
开发者 Python
类方法和静态方法 | 学习笔记
快速学习类方法和静态方法,介绍了类方法和静态方法系统机制, 以及在实际应用过程中如何使用。
类方法和静态方法 | 学习笔记