首页 > 编程语言 >三十三、Python基础语法(面向对象其他语法-下)

三十三、Python基础语法(面向对象其他语法-下)

时间:2024-11-07 19:49:34浏览次数:3  
标签:三十三 Python self 语法 实例 radius print def 属性

一、属性划分

1.类属性

类属性:类属性就是类对象具有的属性,一般写法在类内部、方法的外部定义的变量,就是类属性,类属性在内存中只有一份。可以通过类名直接访问,也可通过实例访问。

class Circle:
    # 类属性,定义圆周率
    pi = 3.14159

    def __init__(self, radius):
        self.radius = radius

    def calculate_area(self):
        # 使用类属性计算圆的面积
        return Circle.pi * self.radius * self.radius

    def calculate_circumference(self):
        # 使用类属性计算圆的周长
        return 2 * Circle.pi * self.radius

# 创建两个圆对象
circle1 = Circle(5)
circle2 = Circle(8)

print(f"圆 1 的面积:{circle1.calculate_area()}")
print(f"圆 2 的面积:{circle2.calculate_area()}")

print(f"圆 1 的周长:{circle1.calculate_circumference()}")
print(f"圆 2 的周长:{circle2.calculate_circumference()}")

2.实例属性

实例属性:实例属性就是对象具有的属性,在类中 的 init 方法中, 使用 self 定义的属性,每个实例对象中都存在一份自己的属性信息。

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

    def introduce(self):
        return f"我是{self.name},今年{self.age}岁。"

# 创建两个 Person 类的实例
person1 = Person("小明", 20)
person2 = Person("小红", 22)

print(person1.introduce())
print(person2.introduce())

如何判断一个属性是定义实例属性还是类属性?

基本上所有的属性都实例属性,实例属性描述每个实例对象的特有信息,类属性描述的是整个类共有信息。

二、方法的划分

1.实例方法

直接使用def关键字定义的方法就是实例对象方法(实例方法),调用:实例对象.方法名()

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        # 实例方法,打印狗狗的叫声和名字
        print(f"{self.name}:汪汪!")

# 创建一个 Dog 类的实例
my_dog = Dog("小白")

# 调用实例方法
my_dog.bark()

2.类方法

类方法:在 def 的上方使用装饰器 @classmethod 装饰的方法,调用:类名.方法名()、对象.方法名()

class Circle:
    pi = 3.14159

    def __init__(self, radius):
        self.radius = radius

    @classmethod
    def from_diameter(cls, diameter):
        # 类方法,通过直径创建 Circle 实例
        return cls(diameter / 2)

    def area(self):
        return Circle.pi * self.radius * self.radius

# 使用类方法创建实例
circle1 = Circle.from_diameter(10)
print(circle1.radius)

print(circle1.area())

3.静态方法

静态方法:在 def 的上方,使用装饰器 @staticmethod 装饰的方法,静态方法,它不依赖于类的实例,也不访问类属性或实例属性。它只是一个与类相关的工具方法,可以直接通过类名来调用。

class MathUtils:
    @staticmethod
    def add(a, b):
        # 静态方法,进行简单的加法运算
        return a + b

result = MathUtils.add(5, 3)
print(result)  # 输出 8

标签:三十三,Python,self,语法,实例,radius,print,def,属性
From: https://blog.csdn.net/CSXB99/article/details/143578838

相关文章

  • 三十、Python基础语法(继承-下)
    方法重写重写:在子类中定义和父类中名字相同的方法,如果父类中方法不能满足子类对象的需求,重写的形式有覆盖和扩展一、覆盖式重写classVehicle:defmove(self):print("Thevehicleismovinginageneralway.")classCar(Vehicle):#重写move方法......
  • 终于弄懂了Python中元组与列表的区别
    列表与元组的区别在Python编程中,列表和元组是两种非常重要的数据结构。尽管它们在许多方面具有相似性(如都可以存储任意类型的元素、都可以通过索引访问元素等),但在使用上仍有明显的区别。理解它们的不同点对于选择合适的数据结构、提高程序的性能和代码的可读性都有重要帮助......
  • 构造函数原型对象语法、原型链、原型对象
    目录一、前言二、编程思想面向过程面向对象三、构造函数四、原型对象constructor属性对象原型原型继承原型链一、前言  通过本篇博客,我们将了解面向对象编程的一般特征,掌握基于构造函数原型对象的逻辑封装,掌握基于原型对象实现的继承,理解什么原型链及其作用......
  • [python turtle summary] Python 海龟画图 函数总结
    Turtle文档导入turtleimportturtleastimportturtlefromturtleimport*Turtle函数方法移动和绘制penup()抬笔pendown()落笔goto(x,y)移动forward(distance)|fd(distance)前进backward(distance)|back(distance)|bk(distance)后退right(angle)|rt(ang......
  • python画图|hist()函数深层体验
    【1】引言前述学习已经掌握hist()函数的基本运用技巧,可通过下述链接直达:python画图|hist()函数画直方图初探-CSDN博客 python画图|hist()函数画直方图进阶-CSDN博客我们已经理解hist()函数本质上画的是概率分布图,相关知识属于数理统计范畴,日常运用较多。为进一步实现运用......
  • 被 AT ... END AT 等 AT 语法搞懵了?试试这个 LOOP AT Groups 语法
    在本篇文章中,您将了解到在7.40中引入的LOOPAT…GROUPBY语句。该语句可以代替ATNEW...ENDAT语句。您可以参阅SCNwikiControlLevelStatementsinABAP-ABAPDevelopment-CommunityWiki(sap.com)了解AT...ENDAT控制层语句。简而言之,有4条AT......
  • 妙趣横生:Python 动画程序的实现与多样化拓展
    以下是另一个使用Python的pygame库实现的简单动画程序示例,实现了一个小球在窗口内反弹的动画效果,标题为《Python之Pygame实现小球反弹动画》:importpygame#初始化pygamepygame.init()#设置窗口大小width,height=640,480screen=pygame.display.set_mode((wid......
  • 不要再使用 READ TABLE 了,教你如何使用新语法读取内表
    在本文章中,您将了解ABAP7.40版中引入的新读取语法。该语法早在2013年就已引入,因此已不再新鲜。但是,如果您仍在使用READTABLE关键字来读取表项,那么这篇文章绝对适合您。请看下面的示例。请注意,下面的代码是在读取语句之前编写的。DATA:it_flightsTYPESTANDARD......
  • DICOM标准:重要概念——多种传输语法、私有数据元素标签、唯一标识符(UID)等详解
    1私有数据元素标  1.1 私有数据元素标签(PrivateDataElementTags)        在DICOM标准中,多个实现者可能会定义带有相同(奇数)组号码的私有数据元素标签。为了避免冲突,私有元素根据以下规则分配私有数据元素标签:  a)私有创作者数据元素的分配 编号为(gggg......
  • 基于Python的热门旅游景点数据分析系统的设计与实现
    ......