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~~~