接口类(抽象类)--------就是一种规范 面向对象的私有与公有 对于每一个类的成员而言都有两种形式: 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法 私有成员和公有成员的访问限制不同: 静态字段(静态变量) 公有静态字段:类可以访问:类内部可以访问:派生类中可以访问 私有静态字段:仅类内部可以访问: class C: name = "公有静态字段" def func(self): print C.name class D(C): def show(self): pr…
组合 什么有什么的关系 一个类的对象作为另一个类的对象继承 子类可以使用父类中的名字(静态属性 方法)抽象类和接口类 只能不继承,不能被实例化 子类必须实现父类中的同名方法———规范代码 metaclass=ABCMeta @abstractmethod python 支持多继承,对于python 来说,抽象类和接口类没有区别 接口类是python 特有的,因为Pythonz直接用类就可以实现接口的效果 python没有'接口'这种数据类型,java中有 继承多态封装propertyclassm…
一.封装 封装 : 广义上的 :把一堆东西装在一个容器里 狭义上的 :会对一种现象起一个专门属于它的名字 函数和属性装到了一个非全局的命名空间 —— 封装 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内容都隐藏起来: 2. 把属性都隐藏,提供公共方法对其访问. 私有变量和私有方法 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) class A:…
计算所居住房子的面积 普通写法 class Room: def __init__(self,name,owner,width,length,heigh): self.name=name self.owner=owner self.width=width self.lenth=length self.heigh=heigh def cal_area(self): print('%s 住的 %s 总面积为 %s' %(self.owner,self.name,self.heigh*self.widt…
一.静态属性@property将方法标记成数据属性:可以访问实例和类的属性 @classmethod标记成类的方法,不需要实例化,可以类直接调用的方法.可以访问类的属性方法,不能访问实例的 class Room: tag=1 def __init__(self,name,owner,width,length,heigh): self.name=name self.owner=owner self.width=width self.length=length self.heigh=heigh @p…
封装 # class Room:# def __init__(self,name,length,width):# self.__name = name# self.__length = length# self.__width = width# def get_name(self):#C++的编码习惯,一个get和一个set# return self.__name# def set_name(self,newName):# if type(newName) is str and newName.…
@classmethod 有的时候在类中会有一种情况,就是这个方法并不需要使用每一个对象属性 因此 这个方法中的self参数一个完全无用的参数,使用classmethod class A: __count = 0 # 隐藏类count属性 def __init__(self, name): self.name = name self.__add_count() # 每一次实例化的时候掉 # 用私有方法来对__count 进行累加 @classmethod def __add_count(cls)…
回答背景知识 这些都是装饰器(decorator).装饰器是一种特殊的函数,要么接受函数作为输入参数,并返回一个函数,要么接受一个类作为输入参数,并返回一个类. @标记是语法糖(syntactic sugar),可以让你以简单易读得方式装饰目标对象. @my_decorator def my_func(stuff): do_things Is equivalent to def my_func(stuff): do_things my_func = my_decorator(my_func) 你…
Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 1. 私有成员 2. 类方法 3. 静态方法 4. 属性 5. 内置函数 isinstance issubclass 6. 总结: 1. 私有成员 私有类的属性:在内部可以访问(本类内部方法中),类的外部不能访问 代码示例: # 在内部可以访问(本类内部方法中) class A:…
一.继承 C++很重要的一个特征就是代码重用.在C语言中重用代码的方式就是拷贝代码.修改代码.C++可以用继承或组合的方式来重用.通过组合或继承现有的的类来创建新类,而不是重新创建它们. 继承是使用已经编写好的类来创建新类,新的类具有原有类的所有属性和操作,也可以在原有类的基础上作一些修改和增补. 新类称为派生类或子类,原有类称为基类或父类 派生类是基类的具体化 (一).派生类的声明语法为: class 派生类名 : 继承方式  基类名 {            派生类新增成员的声明; } (二…