Python编程基础20:实例成员与类成员

Posted howard2005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编程基础20:实例成员与类成员相关的知识,希望对你有一定的参考价值。

文章目录

零、本讲学习目标

  1. 掌握类属性和实例属性的使用
  2. 掌握类方法和静态方法的使用

一、类属性和实例属性

(一)类属性

1、概念

  • 类属性是类所拥有的属性,它需要在类中进行显示地定义(位于类内部,方法的外面),它被所有类的实例对象所共有,在内存中只存在一个副本。

2、语法格式

class Person(object):
    # 类属性
    country = '中国'

(二)实例属性

1、概念

  • 通过“实例.属性”添加属性的属性都是实例属性,不同对象的实例属性值是不同的。

2、语法格式

def __init__(self, name):
    # 实例属性
    self.name = name

(三)案例演示

  • 编写程序 - 演示类属性和实例属性.py
  • 运行程序,查看结果
  • 将Person的类属性country重新赋值为“韩国”,三个实例对象的国家属性值一起变成“韩国”
  • 修改某个对象的实例属性值,不会其它对象的该实例属性值

二、类方法

(一)概念

使用修饰器@classmethod来标识类方法。要想调用类方法,既可以通过对象名调用类方法,又可以通过类名调用类方法,这两种方法没有任何区别。

(二)语法格式

class 类名:
    @classmethod
    def 类方法名(cls):
        方法体

(三)案例演示

  • 编写程序 - 演示类方法.py
  • 运行程序,查看结果

三、静态方法

(一)概念

  • 使用修饰器@staticmethod来标识静态方法
  • 静态方法是没有self参数,在静态方法中无法访问实例变量
  • 静态方法中不可以直接访问类属性,但是可以通过类名引用类属性
  • 静态方法跟定义它的类没有直接关系,只是起到了类似函数的作用
  • 可以通过类名或实例访问静态方法,效果完全相同

(二)语法格式

class 类名:
    @staticmethod
    def 静态方法名():
        方法体

(三)案例演示

  • 编写程序 - 演示静态方法.py
  • 运行程序,查看结果
    • 注意:静态方法里访问类属性college,必须加上类名前缀:School.college,否则要报错

以上是关于Python编程基础20:实例成员与类成员的主要内容,如果未能解决你的问题,请参考以下文章

01月10日 四周三次Python基础进阶

保持类的向量成员与类实例连续

Python之面向对象与类

python2学习------基础语法2(类类的继承类成员函数防御式编程)

c#核心基础--类的继承

Python面向对象编程-02