python: objct property
""" 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
调用:
#私有属性也可以处理 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)
继承
""" 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}注视着在老鼠")
调用:
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()
输出:
黄色的狼狗在吃食物 黄色的狼狗在睡觉 黄色的狼狗在看家门 家猫的白色在吃鱼 家猫的白色在吃食物 家猫的白色在睡觉 家猫的白色显矅黄眼睛注视着在老鼠
""" 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)
调用:
sin=Singleton.Singleton() sin.name="geovindu" print(id(sin)) sin.name="涂聚文" print(id(sin))
# 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(涂聚文)