python property

复制代码
property用在面向对象中,用户简化代码,getter setter方法像成员变量一样调用

另外python在定义class的时候与java有所不同,

class Student,class Student(),class Student(object) 没有任何区别,其中object代表继承

变量前加双下划线代表私有变量,不需要像java加private关键字

复制代码
import time


class Student(object):
    def __init__(self,name,gender="nan",address="No Address"):
        self.__name = name
        self.__gender = gender
        self.__address = address

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

    @name.setter
    def name(self,name): self.__name = name

    def __str__(self):
        return f"name is {self.__name}, gender is {self.__gender}, address is {self.__address}"

    def __del__(self):
        print(f"Student {id(self)} has been deleted")

    def run(self):
        print(f"Student is run.....")



if __name__ == '__main__':
    s = Student(name="zhangsan");
    s.name = "dsfsfsfs"
    print(s)
    s.run()
    time.sleep(1)
    print("after sleep 1s")

name is dsfsfsfs, gender is nan, address is No Address

Student is run.....

after sleep 1s

Student 1161272647632 has been deleted

最后del调用时因为程序结束,对象被回收

相关推荐
Web3&Basketball1 小时前
MiniMax M3.1 Flash实战:3个成本坑
python·大模型·成本优化·minimax·推理优化·token计费
曹牧1 小时前
C#里引用ActiveX控件
开发语言·c#
Angeldream1231 小时前
第 7 章 医学影像特征提取与分析
图像处理·python·深度学习·计算机视觉·医学影像·特征提取
汤姆宝库1 小时前
推理工程深拆:调度、量化与投机解码
android·开发语言·kotlin
无语的小歪歪1 小时前
ATF 智测 1.0
python·测试工具·集成测试
czq_26867194871 小时前
Python打卡第45天
开发语言·python
宇卿.1 小时前
C#委托详解
开发语言·c#
java_prinln1 小时前
9. Agent 的长短期记忆系统怎么做的?记忆是怎么存的?粒度是多少?怎么用的?
数据库·python·agent
ZoeLandia1 小时前
React04:事件处理与受控表单
开发语言·前端·react.js·typescript