Python 测开27期 - WL - 学习笔记 - python 面向对象

python 面向对象

类的定义与对象实例化

类的定义

  • class关键字
  • 类名:多个单词的首字母都大写,驼峰命名
  • 父类名:可以是多个,用逗号隔开,可选,没有父类名时整个括号部分可以省略不写
  • 类的注释信息:前后各3个单引号或双引号
  • 属性:在类中,方法外定义的变量称之为属性,名词或形容词,用来描述实例的状态和数据
  • 方法:在类体中定义的函数,称之为方法,动词,用来表示实例的行为

类的属性与方法

类的方法

实例方法: 定义类的行为和功能实现

  • 作用: 提供每个类的实例共享的方法
  • 语法:def 方法名(self, 参数列表)
  • 访问:实例.方法名(参数列表)
class Human:
    # 定义实例方法
    def stu(self,cpi):
        print(f"正在学习{cpi}")
# 实例化对象
aa = Human()
# 通过实例访问实例方法
aa.stu("C#") # 结果是:正在学习C#

构造方法:进行实例化操作

  • 作用:实例化对象
  • 语法:def init(self, 参数列表)
  • 访问:类名(参数列表)
# 类的声明
class  Human(object):
    '''人类'''
    # 定义属性,即类属性
    massage  = '这个是类属性'
    # 定义构造方法
    def __init__(self, name, age):
        # 实例变量
        self.name = name
        self.age = age
        print("这是构造方法")
# 实例化对象
ss = Human('das',12) # 结果是 这是构造方法
# 通过实例访问类属性
print(ss.massage) # 结果是 这个是类属性
# 通过实例访问实例属性
print(ss.name) # 结果是 das
print(ss.age) # 结果是 12
# 通过类名访问类属性
print(Human.massage) # 结果是 这个是类属性

类方法

  • 作用:可以操作类的详细信息
  • 语法:@classmethod
  • 访问:类名.类方法名(参数列表)
    image
class Human:
    # 类属性
    population = 0

    # 类方法
    @classmethod
    def born(cls):
        print("This is 类方法")
        cls.population +=1
# 通过类名访问类方法
Human.born() # 结果是:This is 类方法
print(Human.population) # 结果是: 1

静态方法

  • @staticmethod
  • 不能且不需要访问类的数据
    image
class Human:
    # 定义静态方法
    @staticmethod
    def stu():
        print("这个是静态方法")

# 通过类名访问静态方法
Human.stu() # 结果是: 这个是静态方法