欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python的面向对象编程,类的理解

程序员文章站 2022-07-03 15:01:32
...

类的相关概念

类(Class):抽象的概念、一类事物
方法:类中定义的函数,对外提供的服务
类变量:类变量在整个实例化的对象中是公用的
实例引用:实例化一个对象
实例变量:以“self.变量名”的方式定义的变量

类、实例、方法、变量

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time:2021/3/26 17:38
# @Author:九九的金金子

# 创建类
class Person:

    # 类变量,即类的属性
    name = "default"
    age = 0
    gender = "male"
    weight = 0

    # __init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
    def __init__(self, name, age, gender, weight):
        # 实例变量,即实例属性
        self.name = name
        self.age = age
        self.gender = gender
        self.weight = weight

    # 方法,类里面定义的函数,对外提供的服务(API接口)
    # self代表类的实例,self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
    # 加装饰器@classmethod,将实例方法变成类方法,类可以直接调用类方法,否则类直接调用实例方法会报错
    @classmethod
    def eat(self):
        print(f"{self.name},eat~~~")

    def run(self):
        print(f"{self.name},run~~~")

    def jump(self):
        print(f"{self.name},jump~~~")

# 调用类变量
print(Person.name)
# 调用类方法
Person.eat()

# 类的实例化,同时会调用__init__方法
zs = Person("张三", 20, "男", 137)
# 调用实例变量
print(f"\nzs的名字{zs.name},年龄{zs.age},性别{zs.gender},体重{zs.weight}")

# 调用类方法
zs.eat()

# 调用实例方法
zs.run()
zs.jump()


lisi = Person("李思", 25, "女", 90)
print(f"\nlisi的名字{lisi.name},年龄{lisi.age},性别{lisi.gender},体重{lisi.weight}")

# 调用类方法
lisi.eat()

# 调用实例方法
lisi.run()
lisi.jump()

运行结果如下:

default
default,eat~~~

zs的名字张三,年龄20,性别男,体重137
default,eat~~~
张三,run~~~
张三,jump~~~

lisi的名字李思,年龄25,性别女,体重90
default,eat~~~
李思,run~~~
李思,jump~~~