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

举报
howard2005 发表于 2022/01/28 00:53:59 2022/01/28
【摘要】 文章目录 零、本讲学习目标一、类属性和实例属性(一)类属性1、概念2、语法格式 (二)实例属性1、概念2、语法格式 (三)案例演示 二、类方法(一)概念(二)语法格式(三)案例演示...

零、本讲学习目标

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

一、类属性和实例属性

(一)类属性

1、概念

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

2、语法格式

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

  
 
  • 1
  • 2
  • 3

(二)实例属性

1、概念

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

2、语法格式

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

  
 
  • 1
  • 2
  • 3

(三)案例演示

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

二、类方法

(一)概念

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

(二)语法格式

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

  
 
  • 1
  • 2
  • 3
  • 4

(三)案例演示

  • 编写程序 - 演示类方法.py
    在这里插入图片描述
  • 运行程序,查看结果
    在这里插入图片描述

三、静态方法

(一)概念

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

(二)语法格式

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

  
 
  • 1
  • 2
  • 3
  • 4

(三)案例演示

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

文章来源: howard2005.blog.csdn.net,作者:howard2005,版权归原作者所有,如需转载,请联系作者。

原文链接:howard2005.blog.csdn.net/article/details/122717507

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。