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调用时因为程序结束,对象被回收

相关推荐
青少儿编程课堂4 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
用户0332126663674 小时前
如何使用 Python 将 JSON 转换为 Excel
python·excel
小小张说故事4 小时前
Python 的切片到底切了什么:拆开 slice 对象、负步长和 __getitem__
python
草莓熊Lotso4 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
huaqianzkh5 小时前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
沐晓时光16 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
用户9562562542919 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程20 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程20 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_9679801120 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化