在Python编程中,使用属性(attributes)而不使用传统的setter和getter方法已经成为一种流行的实践。这篇文章将深入探讨“Python不写set get”的问题,包括其背景、技术原理、架构解析、源码分析、应用场景以及扩展讨论。
## 背景描述
在过去的编程实践中,创建类时常常通过setter和getter函数来访问和修改对象属性。这种方法虽然直观,但却使得代码变得繁琐。
Python描述符__get__,__set__,__del__1、什么是描述符2、描述符协议3、描述符的作用4、描述符分的分类5、描述符定义要求6、类属性、描述符、实例属性的优先级五、描述符的应用 1、什么是描述符1、从字面意思:假设一个人,这个人有很多的属性(名字、年龄、升高、体重等),而描述符就是对这些属性的限制,及描述符就是对对象属性的一种限制,或者说在对象赋予这个属性之前的一种操作(扩
转载
2023-11-10 20:32:56
57阅读
在日常工作中,Java是我最频繁使用的语言。关于getter和setter我也听说过不少。我的感觉是在许多场合,我们不需要getter和setter方法。 回想一下我们写JavaBean,创建一个类,然后编写一些private字段,最后使用一个smart IDE帮助我们生成对应的getter和setter方法(或者使用某个第三方类库的annotation)。但是让我们仔细的想一下,我们是怎样使用这
转载
2024-08-18 10:55:29
13阅读
前言Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。正文1.添加依赖在 pom.xml 文件中添加相关依赖:<lombok.version>1.16.20</lombok.version>
<!-- https://mvnrepo
转载
2024-05-30 08:42:45
69阅读
其次的一些作用包括写上get和set的时候,IDE可以将该类的所有属性提示出来,不过这是小作用。那么,在Python中我们怎么写get和set方法呢?在说之前,我还是想吐槽,Python设计感觉特别不正规,因为Python中没有private,属性前面加个__(两个下划线)就是私有属性了,你要是真是也就罢了,实际上呢?就是给人家改个名字。比如:运行结果:是不是很low?就给你改了个名字,就变成私有
## 实现Java不用写getter和setter方法的方法
作为一名经验丰富的开发者,我会教给你如何实现Java不用写getter和setter方法的方法。这样可以减少代码量,并且提高开发效率。
### 流程图
下面是整个流程的流程图:
```mermaid
flowchart TD
A[定义类] --> B[定义属性]
B --> C[使用Lombok注解]
C
原创
2023-11-09 10:09:20
208阅读
Java作为一种面向对象语言。支持以下基本概念:多态继承封装抽象类对象实例方法重载Java一些重要概念普通类和抽象类抽象类不能被实例化;抽象类可以有抽象方法,只需申明,无须实现;有抽象方法的类一定是抽象类;抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;抽象方法不能声明为静态、不能被static、final修饰。接口和抽象类(1)接口接口使用interface修饰;接口不能实例化
转载
2023-09-20 16:23:20
67阅读
lombok简介lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下。那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要
转载
2024-08-02 12:04:32
42阅读
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步1.java里get/set方法大部分的同学开始写java代码的时候,最初始的代码肯定是字段的get/set方法。大家对于java特别冗长的诟病,很大一部分来自于无处不在的get/set方法。甚至国内有相当一部分不负责任的java书籍,里面
转载
2023-09-09 00:09:30
67阅读
# 如何实现Python的get和set方法
## 介绍
作为一名经验丰富的开发者,掌握Python中的get和set方法是非常重要的。在这篇文章中,我将教会你如何实现Python的get和set方法。首先,让我们来看一下整个流程。
## 教程流程
```mermaid
journey
title 教程流程
section 定义类
section 定义get方法
原创
2024-06-04 05:05:16
39阅读
java中的集合类总结
在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现,我在使用和面试的时候频
频遇到这样的“抉择” 。 :)(主要还是面试的时候)
久而久之,也就有了一点点的心得体会,写出来以供大家讨论 。
总的说来,Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:
Collectio
转载
2024-06-18 06:05:22
63阅读
一、Java基础部分1、访问修饰符public,private,protected,以及不写(默认)时的区别?修饰符当前类同 包子 类其他包public√√√√protected√√√×default√√××private√×××类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(prot
转载
2023-07-23 03:14:54
136阅读
JavaBean中的get/set 的命名规范
最近的struts项目中遇到了这样的问题: 我的action中全局变量明明有getset方法,而且是自动生成的,但是在使用的时候,总是说找不到这个属性的getset方法,取不到从jsp传来的值, 原因如下:变量名为:hDeptment,在自动生成getset方法为:setHDeptment,getHDeptment。
使用dictPython内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。数据放入dict的方法,除了初始化时指定外,还可以通过key放入:>>> d['Adam'] = 67
>>> d['Adam'] 67要避免key不存在的错误,有两种办法,一是通过in判断ke
转载
2024-07-01 15:45:58
32阅读
一、描述符是什么 描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议 __get__():调用一个属性时,触发 __set__():为一个属性赋值时,触发 __delete__():采用del删除属性时,触发 1 class Foo: #在python3中Foo是新式类,它实现了三种方
转载
2024-02-26 07:18:51
79阅读
java中我们在定义类的成员变量时,如果是私有属性,我们通过调用属性对应的set和get方法来获取和设置变量的值,如果我们将这种方式来用于python那么代码如下:# coding=utf-8
class Money(object):
def __init__(self):
self.money = 0
def getMoney(self):
re
转载
2023-06-16 00:41:59
814阅读
python中,什么描述符。描述符就是实现了"__get__”、“__set__”或”__delete__” 方法中至少一个的对象。什么是非数据描述符,就是实现了__get__方法的对象,也就是初始化后,就只能读。数据描述符就是实现了__get__和__set__方法的对象,也就是说这个属性可读可重新赋值。看一下Python核心编程中描述符的例子: class DevNull2(object):
转载
2024-05-15 12:36:00
35阅读
先说定义,这里直接翻译官方英文文档: 一般来说,描述符是具有“绑定行为”的对象属性,该对象的属性访问将会被描述符协议中的方法覆盖.这些方法是__get__(),__set__(),和__delete__().如果一个对象定义了这些方法中的任何一个,它就是一个描述符.接下来对这个定义进行解释: 我们访问一个对象a的属性x的时候,是这么调用的:a.x,那么这种方便的调用方式其实是怎么工作的呢?
转载
2023-07-24 20:08:44
75阅读
一、什么是重写在子类中创建了一个与父类中名称相同、返回值类型相同、参数列表的方法相同,只是方法体中的实现不同,以实现不同于父类的功能,这种方式被称为方法重写(override),又称为方法覆盖、方法复写。二、为什么需要重写原有的方法无法满足新的需求,需要对这个方法进行改良来满足新的需求。重写是出现在子类继承父类方法中。可以看出,重写就是子类继承的父类方法无法满足子类的新的功能需求,子类对父类的这个
set集合集合是一个无序且不重复的元素组合,以大括号表示。使用详情:>>> b=set(a)
>>> type(b)
<class 'set'>
>>> print(b)
{'hello', 1, 3, 'cc', 'dx'}
>>> print(b)
{'hello', 1, 3, 'cc', 'dx'}
>
转载
2023-08-23 17:12:48
69阅读