首页 > 其他分享 >寒假生活(16)

寒假生活(16)

时间:2024-01-27 23:23:46浏览次数:25  
标签:__ 生活 name 16 self 寒假 method def 属性

今天继续面向对象编程的进程,因为这是学会利用python的基础,所以多学一些。

  1. 构造函数和析构函数

构造函数(Constructor)是在创建一个类的实例时自动调用的方法。在Python中,构造函数的名称固定为__init__,它用于初始化对象的属性。

例如,下面的代码定义了一个具有两个属性的类,并在构造函数中初始化这些属性:

class MyClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age

在创建类的实例时,可以传入参数来初始化对象的属性:

pythonCopy Code
my_object = MyClass("Alice", 25)

析构函数(Destructor)是在删除一个类的实例时自动调用的方法。在Python中,析构函数的名称固定为__del__

  1. 访问控制

Python中的属性和方法默认是公开的,即可以在类的外部直接访问。但是,可以使用下划线来约定某些属性和方法应该被视为私有的或受保护的。

  • 以单下划线 _ 开头的属性或方法被视为受保护的,表示它们是类内部使用的,外部应尽量避免直接访问。
  • 以双下划线 __ 开头的属性或方法被视为私有的,表示它们只能在类的内部访问。

例如:

class MyClass:
    def __init__(self):
        self._protected_attribute = "protected"
        self.__private_attribute = "private"

    def _protected_method(self):
        print("This is a protected method.")

    def __private_method(self):
        print("This is a private method.")
  1. 类方法和静态方法

类方法(Class Method)是与类相关联的方法,而不是与对象相关联的方法。类方法使用装饰器@classmethod进行定义,并使用第一个参数cls表示类本身。

静态方法(Static Method)是独立于类和对象的方法,它们与特定的类或对象无关。静态方法使用装饰器@staticmethod进行定义,不需要传递额外的参数。

例如:

class MyClass:
    @classmethod
    def class_method(cls):
        print("This is a class method.")

    @staticmethod
    def static_method():
        print("This is a static method.")

类方法可以通过类名或实例调用,而静态方法只能通过类名调用。

  1. 属性访问器和修改器

属性访问器(Getter)和修改器(Setter)是用于访问和修改类的属性的方法。在Python中,可以使用装饰器@property@attribute_name.setter来定义属性访问器和修改器。

例如:

class MyClass:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, new_name):
        self._name = new_name

通过定义属性访问器和修改器,可以对属性的读取和赋值进行更多的控制。

标签:__,生活,name,16,self,寒假,method,def,属性
From: https://www.cnblogs.com/zjsdbk/p/17992349

相关文章

  • 寒假生活(17)
    今天继续python的学习,今天的主要内容是连接数据库操作,我学习了3种常见的数据库的连接方式并一一实验,现将模板整理出来。当使用Python进行数据库访问时,通常会使用数据库接口模块(DatabaseInterfaceModule)来连接和操作数据库。Python标准库中包含了一些用于不同类型数据库访问的模......
  • 寒假生活(15)
    今天继续python的学习,这几周把基本的知识点大体看完了,现在开始学习一些实际的,今天主要是面向对象编程。类和对象在Python中,通过定义类(class)来实现面向对象编程。一个类定义了一类对象的属性和方法,而一个具体的对象则是该类的一个实例。定义一个类时,需要使用关键字class,然后在......
  • 详解'unicodeescape' codec can't decode bytes in position 16-17: malformed \N ch
    详解'unicodeescape'codeccan'tdecodebytesinposition16-17:malformed\Ncharacterescape在Python的字符串处理中,有时候可能会遇到如下错误信息:'unicodeescape'codeccan'tdecodebytesinposition16-17:malformed\Ncharacterescape。本篇文章将详细解释这个错......
  • 菲律宾VPS服务器,月均只要16.5元/月,优惠推荐
    原文:https://ichochy.com/posts/vps/20240105.htmlMegalayer致力于成为全球电信增值服务提供商,为用户在全球范围内提供优质、稳定的互联网服务,目前已经在香港、日本、美国等地区部署节点,并且将继续在东南亚地区进行战略布局,提升资源优势以及市场优势。资费月资费年资费,最......
  • Git必知必会基础(16):git clone、git pull、git fetch、git push的区别
     gitclone没有本地仓库,将远端的整个项目下载到本地 gitpull本地已经有项目但不是最新(比如你的同事往远处仓库提交了代码),从远程获取最新版本并merge到本地,也就是将远程指定分支拉取到本地指定分支上命令格式:gitpull[远程仓库名][远程分支名]:[本地分支名]本地分支是当前分......
  • 2024.1.27寒假每日总结18
    算法题:2861.最大合金数-力扣(LeetCode)git学习Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而......
  • 1.2、7寒假每日总结18
    git学习Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 ......
  • 洛谷题解-P1673 [USACO05FEB] Part Acquisition S
    https://www.luogu.com.cn/problem/P1673题目描述奶牛们接到了寻找一种新型挤奶机的任务,为此它们准备依次经过N(1≤N≤5×104)N(1\leN\le5\times10^4)N(1≤N≤5×104)颗行星,在行星上进行交易。为了方便,奶牛们已经给可能出现的K(1≤K≤103)K(1\leK\le10^3)K(1≤K≤103)......
  • 寒假生活指导19
    packagesrc.main.selenium;importorg.openqa.selenium.By;importorg.openqa.selenium.JavascriptExecutor;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.edge.EdgeDriver;importorg.openqa.selenium.e......
  • [office] Excel2016瀑布图怎么做?Excel2016瀑布图绘制教程
    瀑布图源于形似瀑布,常用来反映数个特定数值之间的数量变化关系Excel2016瀑布图绘制教程新建一个EXCEL表格,输入数据。最好是增量、减量数据,这样做出的瀑布图才有对比。在数据区域单击右键,依次点击“插入”—“图表”—“所有图表”,选择“瀑布图”点击“确定”,生成瀑布图。从图中可以......