python: objct property
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | """ clerker.py 类 edit:geovindu,Geovin Du date:20230672 IDE:PyCharm 2023.1.2 clerker.__dict__ 窥探私有属性 私用属性 clerker._Clerker.__age=-1 clerker.__age=-1 """ import sys import os class Clerker( object ): """ 类的封装 """ salary = 30 #定义类的公有属性 _salary2 = 20 #定义类的保护属性 __salary3 = 50 #定义类的私有属性 def __init__( self ,name: str ,age: int ): """ :param name: :param age: """ self ._name = name #公有属性 self .__age = age #私用属性,需要通过(函数)setter,getter 设置和访问 @property # @property装饰getter方法 get ,set 名字相符 def Age( self ): """ :return: """ return self .__age @Age .setter def Age( self ,age): #@方法名.setter 设置 """ :param age: :return: """ if age> 0 : self .__age = age def __getage( self ): """ :return: """ print (f "我是{self._name},今年{self.__age}岁" ) return self .__age def setName( self ,name): """ :param name: :return: """ self ._name = name def getName( self ): """ :return: """ return self ._name def setAge( self ,age): """ :param age: :return: """ if (age> 0 ): self .__age = age def getAge( self ): """ :return: """ return self .__age |
调用:
1 2 3 4 5 6 7 8 9 10 | #私有属性也可以处理 cl = Clerker.Clerker( "geovindu" , 25 ) print (cl.getAge()) print (cl.__dict__) #查看属性 print (Clerker.__dict__) #查看方法 cl._Clerker__age = 20 print (cl.Age) print (cl._Clerker__getage()) print (Clerker.Clerker.salary) print (Clerker.Clerker._salary2) |
继承
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | """ Animal.py 类 edit:geovindu,Geovin Du date:20230702 IDE:PyCharm 2023.1.2 """ import sys import os class Animal( object ): """ """ def __init__( self ): """ """ self ._Category = "" self ._Color = "" @property def Categor( self ): """ :return: """ return self ._Category @Categor .setter def Categor( self ,categor): """ """ self ._Category = categor @property def Color( self ): """ :return: """ return self ._Color @Color .setter def Color( self ,color): """ :param color: :return: """ self ._Color = color; def Eat( self ): """ :return: """ print (f "{self._Color}的{self._Category}在吃食物" ) def Sleeep( self ): """ :return: """ print (f "{self._Color}的{self._Category}在睡觉" ) """ Dog.py 继承类 extens edit:geovindu,Geovin Du date:20230702 IDE:PyCharm 2023.1.2 """ import sys import os import Animal class Dog(Animal.Animal): """ """ def wathchDoor( self ): """ :return: """ print (f "{self.Color}的{self.Categor}在看家门" ) """ Cat.py 继承类 inherited Animal python (类名) super java 继承可以使用 extends 和 implements 这两个关键字来实现继承 C++ :public 类名 C# :类名 可以重写父类方法 edit:geovindu,Geovin Du date:20230702 IDE:PyCharm 2023.1.2 """ import sys import os import Animal class Cat(Animal.Animal): """ """ def __init__( self ): self ._eye = "" # 自有属性 super ().__init__() @property def Eye( self ): """ :return: """ return self ._eye @Eye .setter def Eye( self ,eye): """ :param eye: :return: """ self ._eye = eye def Eat( self ): """ 重写父类的方法,用子类的方法 :return: """ print (f "{self.Color}的{self.Categor}在吃鱼" ) super ().Eat() #再调用父类的方法 def CatchaMouse( self ): """ :return: """ print (f "{self.Color}的{self.Categor}显矅{self._eye}注视着在老鼠" ) |
调用:
1 2 3 4 5 6 7 8 9 10 11 12 13 | dog = Dog.Dog() dog.Color = "黄色" dog.Categor = "狼狗" dog.Eat() dog.Sleeep() dog.wathchDoor() cat = Cat.Cat() cat.Categor = "白色" cat.Color = "家猫" cat.Eye = "黄眼睛" cat.Eat() cat.Sleeep() cat.CatchaMouse() |
输出:
1 2 3 4 5 6 7 | 黄色的狼狗在吃食物 黄色的狼狗在睡觉 黄色的狼狗在看家门 家猫的白色在吃鱼 家猫的白色在吃食物 家猫的白色在睡觉 家猫的白色显矅黄眼睛注视着在老鼠 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | """ Singleton.py 单例 模式 python (类名) super java 继承可以使用 extends 和 implements 这两个关键字来实现继承 C++ :public 类名 C# :类名 可以重写父类方法 edit:geovindu,Geovin Du date:20230702 IDE:PyCharm 2023.1.2 """ import sys import os class Singleton( object ): """ 单例 __new__ 只让它创建一次 """ __instance = None #类属性 def __init__( self ): super ().__init__() self .name = "" def __new__( cls , * args, * * kwargs): if not cls .__instance: cls .__instance = super ().__new__( cls , * args, * * kwargs) #print(f"22222") return cls .__instance #return super().__new__(cls,*args, **kwargs) |
调用:
1 2 3 4 5 | sin = Singleton.Singleton() sin.name = "geovindu" print ( id (sin)) sin.name = "涂聚文" print ( id (sin)) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | # encoding: utf-8 # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 11 # Datetime : 2023/7/2 19:35 # User : geovindu # Product : PyCharm # Project : pythonStudyDemo # File : duShapes.py # explain : 学习 radial (公有属性) _radial (保护属性) __radial (私有属性) 下划线的条数确定私有公有性不同 import sys import os import math class DuShapes( object ): """ """ price = 10 #定义类的公有属性 _price = 100 #定义类的保护属性 __pirce = 1000 #定义类的私有属性 def __init__( self ): """ """ self .radial = 0 #公有属性 self ._radial = 0 #保护属性 self .__radial = 0 #私有属性 @property def Radial( self ): return self .radial @Radial .setter def Radial( self , radial): if (radial > 0 ): self .radial = radial else : print (f "None" ) def setRadial( self , radial): if (radial > 0 ): self .radial = radial else : print (f "None" ) def getRadial( self ): return self .radial def calculateArea( self ): are = math.pi * self .radial * * 2 return are |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2010-07-02 SQL server查询数据类型为ntext是空或NULL值