day30 Pyhton 面向对象 继承.装饰器】的更多相关文章

一面向对象相关 谈谈你对面向对象的理解 1.泛泛谈:什么情况下使用面向对象 2.针对面向对象的 封装 继承 多态一个一个的谈 3.根据你工作中的实际情况对应来举例子 封装 1.广义上:普遍的大家认为的封装,就是把一类相同属性和方法的事务抽象为一个类 把属性和方法封装在一个类中 是为了复杂的角色关系的程序中,能够把属于各个角色的方法分开 使得代码更加简洁 清晰(狗不能调用attack,人不能调用bite) 狭义上:在类中,可以定义一些私有成员(静态属性,方法,对象的属性) __私有的成员名,就定义…
属性:   @property   @method_name.setter   @method_name.deleter   三个标签都是放在方法的上面来使用,且方法名要和后续使用的   变量名字相一致.      好处:   1 防止别人乱改变量内容   2 在操作变量的时候,做一些附加操作,比如:写日志.写数据库     做参数的相关计算. 4 私有变量和私有方法:   变量和方法前面有2个下划线.   私有的仅限类内部使用,不能被类外部调用(不太严格).   私有变量和私有方法可以被继承么…
python面向对象内置装饰器property,staticmethod,classmethod的使用 @property 装饰器作用及使用 作用:面向对象中的方法伪装成属性 使用如下: class Circle: def __init__(self,r): self.r = r @property def area(self): return 3.14*self.r**2 @property def perimeter(self): return 2*3.14*self.r C = Circl…
python中,我们可以直接添加和修改属性的值: >>> class Student(object): ... pass ... >>> s = Student() >>> s.score = 101 但是,101明显超过了满分100分,不合理.可以通过创建setScore()方法,进行参数检查: >>> class Student(object): ... def setScore(self,score): ... if not i…
一.定义 装饰器@property可以把方法变成属性使用作用: 控制类内成员的获取 设置 删除获取 @property设置 @自定义名.setter删除 @自定义名.deleter 二.具体实现 1.方法一 class MyClass():    def __init__(self,name):        self.name = name    #获取    @property    def username(self):        return self.name     #设置   …
@property # 例1 - 1 (某一个属性如果是通过计算得来的,那么计算的过程写在方法里,把这个方法伪装成属性) from math import pi # class Circle: # def __init__(self,r): # self.r = r # # @property # 把一个方法伪装成属性 源码中有人写 # def area(self): # 被property装饰器装饰的方法不能传递除self以外的参数 # return pi*self.r**2 # # @pro…
1.昨日回顾 类的命名空间 静态属性\动态属性(方法) 对象的命名空间 #对象的属性 #类指针:对象能够通过这个类指针找到类 #静态属性:属于类,多个对象共享这个资源 #尽量用类名来操作静态属性 #对象操作静态属性: #只要是给'对象.属性名'赋值就相当于新建对象属性,而不是修改静态属性 #组合 #两个类的对象 #其中一个对象的属性是另一个对象 # class Course: # def __init__(self,name,price,period): # self.name = name #…
一.内容回顾 初识继承 父类\基类\超类 子类\派生类 派生 :派生方法.派生属性 单继承 继承的语法class子类名(父类名) 解决开发中代码冗余的问题 子类继承了父类之后,可以调用父类中的方法 如果子类的对象调用某个方法:对象/自己类/父类 如果子类的对象调用的某个方法父子类中都有: 正常情况下是用自己的 想用父类的: super().方法名() 父类名.方法名(self) 继承表达的是两个类之间 父类子类的关系 二.今日内容 抽象类:规则 约束了所有继承这个抽象类的子类必须实现某些同名方法…
装饰器其实也是一个函数,它的参数是一个函数 ; 其它函数与装饰器之间建立联系是通过 @装饰器函数名, 感觉有点像Spring的面向切面编程 装饰器函数,如何处理原函数的参数.?  装饰器 原函数返回值的处理 类与对象 , self相当于其它语言中的 this  类的静态属性和动态属性  静态方法和动态方法 静态方法的参数中是没有 self的.  特性  私有方法和私有属性  : __开头 类提供访问私有属性的方式  只读@property  可写 @方法名.setter 类的 构造方法__ini…
封装 # 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.…