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(涂聚文)
浙公网安备 33010602011771号