当前位置: 首页 > news >正文

简易静态网站制作流程图WordPress允许用户发布文章

简易静态网站制作流程图,WordPress允许用户发布文章,wordpress theauthor,上海网络建设规划文章目录 类和继承变量保护类装饰器 类和继承 Python虽然以函数式著称#xff0c;但在Python中#xff0c;万物皆对象#xff0c;其对面向对象编程是有着非常不错的支持的。类是面向对象的核心数据类型#xff0c;下面代码就创建了一个Person类。 class Person:count 0d… 文章目录 类和继承变量保护类装饰器 类和继承 Python虽然以函数式著称但在Python中万物皆对象其对面向对象编程是有着非常不错的支持的。类是面向对象的核心数据类型下面代码就创建了一个Person类。 class Person:count 0def __init__(self, name, ID):self.name nameself.ID IDPerson.count 1def introduce(self):print(fIm {self.name})def peopleCount(self):print(fThere are {Person.count} persons)p1 Person(micro, 1) p2 Person(cold, 2) p1.introduce() # Im micro p1.peopleCount() # There are 2 persons其中__init__函数用于类的初始化参数self表示当前对象。所以创建p1和p2时两人分别被赋予了不同的姓名和编号并可通过introduce方法进行调用。 写在类内部、函数外部的变量属于整个类的共有变量所以每当创建一个新的对象时count都会加一。所以无论p1还是p2在调用peopleCount函数时均回得到共有两人的结果。当然随着创建对象的增多这个值也会随之增长。 在一个类中一般变量被称作成员变量函数被称作成员函数也可称为方法。 如果只用一个关键词来形容面向对象那么这个关键词一定是继承不能继承的类将和结构体没什么区别。下面是一个继承了【Person】的类。 class Student(Person):def __init__(self, name, ID, grade):super(Student, self).__init__(name, ID)self.grade gradedef introduce(self):print(fIm {self.name}, end, )self.getGrade()def getGrade(self):print(fmy grade is {self.grade})p3.introduce() # Im soft, my grade is 4 p3.peopleCount() # There are 3 persons在类的继承过程中如果想连带着继承类的某个方法那么就可以直接将这个方法省略比如peopleCount便直接沿用了Person类中的内容。 相应地如果重新写了这个函数那么这个函数就会焕然一新而与父类的同名方法变得毫无关联这个过程叫做方法重写。introduce就是这种情况虽然与Person类有着相同的名字但输出结果发生了变化。 初始化函数也是一样如果省略就会沿用父类的做法如果重写就会变得与父类无关。super函数为子类和父类的函数之间架设了一道桥梁super(Student, self)即可找到Student的父类并调用其中的函数。所以Student类尽管重写了初始化方法但也沿用了父类的一些处理从而节约了代码。 变量保护 在Python中出于于某些考虑会对属性加以保护不得随意访问。比如一个人的年龄大小倒是无所谓了但必须得是个数值如果完全暴露出去那被人改成字符串麻烦可就大了。 为此在Python中如果某个成员以双下划线开头那么这就是无法被访问的从而使得变量得以保护。 但另一方面又不得不围绕这个属性创建一系列方法最起码就得包括设置和读取的功能为了让这些功能更易于调用Python提供了property函数示例如下 class Private(Person):def set_age(self, age):if type(age)int:self.__age agedef get_age(self):return self.__agedef del_age(self):del self.__ageage property(get_age, set_age, 年龄)p3 Private(c, 3) p3.age 18 print(p3.age) # 18 p3.__age 直接调用会报错 Traceback (most recent call last):File stdin, line 1, in module AttributeError: Person object has no attribute __agep3.age 20 print(p3.get_age()) print(p3.age) # 18其中_age是一个私有变量受到保护无法访问。而age则可以赋值和调用值。但是当把age的值设为字符串时并没有响应可见当赋值的时候的确是调用了set_age方法。 property提供了装饰器的语法糖从而上述功能可以写成形如下式的更加简洁的形式并且添加了删除属性的功能。 class Private(Person):propertydef age(self):return self.__ageage.setterdef age(self, age):if type(age)int:self.__age ageage.deleterdef age(self):del self.__age在编程时类内部的很多东西并不想被外界得到即需要一种访问限制的方法以避免下列情况的发生 p3.count - 5 print(p3.count) # -2类装饰器 一般来说在Python类中不加修饰的方法叫做实例方法即只有经过经过实例化之后才能调用。但也存在另一种需求即不创建类的对象而直接调用类的方法。比如想通过类的方法进行初始化或者干脆只是把类当作一个函数库。 为此可以使用类方法和静态方法这两种方法可直接通过类的名字进行调用。区别在于类方法会将类自身作为第一个参数传入而静态方法则完全就是一个函数某种意义上来讲似乎和这个类并无关联示例如下。 class Person:count 0def __init__(self, name, ID):self.name nameself.ID IDPerson.count 1def introduce(self):print(fIm {self.name})classmethoddef peopleCount(cls):print(fThere are {cls.count} persons)classmethoddef alphaMan(cls, name, ID):cls.count - 1return Person(name, ID)staticmethoddef add(a,b):return ab其中introduce是实例方法无需多言。 【classmethod】是类方法的装饰器上面代码中peopleCount和alphaMan都是类方法其第一个参数cls指代的就是Person自身。 【staticmethod】是静态方法修饰器add方法即为静态方法可见这个方法的目的是求和从代码结构来看实在看不到与Person的半点关联。 示例如下可见静态方法和类方法均可不经实例化而调用且前者与普通的函数没什么区别。当调用构造函数创建对象时count会增加而创建一个透明人由于代码中剪掉了一个计数所以count并不会增加。 Person.add(3,4) # 7 Person.peopleCount() # There are 0 persons p1 Person(a, 1) Person.peopleCount() # There are 1 persons p2 Person.alphaMan(b, 2) Person.peopleCount() # There are 1 persons
http://www.hkea.cn/news/14570097/

相关文章:

  • 网站建设的步骤是什么意思建筑设计建模软件
  • 博客网站建设方案上海专业网站建设费
  • 做网站需要哪些步骤网站收录服务
  • wordpress多站显示不正常常州网站建站
  • 长沙网站建设策划网站优化排名软件哪些 最好
  • 重庆网站建设有佳网络网站建设相关书籍
  • 花生壳免费域名注册网站加盟装修公司哪家好
  • 全媒体网站的建设建筑网课平台哪个好
  • 阿里巴巴做网站难吗罗湖装修公司网站建设
  • 网站认证免费昆明网站建设赵
  • wordpress视频站插件网页制作中的常见问题
  • 全国酒店网站建设动漫设计工作室网站宣传片制作
  • 潍坊网站优化培训做企业展示型网站
  • 大连外贸网站建设产品展示网站含后台网站模板下载
  • 江苏建设外贸公司网站做微信号公众号用网站还是App
  • 怎样看一个网站的浏览量网站后台访问权限设置
  • 神马网站可以做兼职百度商桥怎么绑定网站
  • 建网站和建网页的区别工业设计专业怎么样
  • 网站解决方案wordpress文章页调用作者
  • wordpress做淘宝客网站wordpress主题接口
  • 怎么让网站栏目页收录唐山seo推广公司
  • 哪家做网站最便宜智博教育的网络营销是什么
  • 厦门模板网站苏州建设交通高等职业技术学校
  • 建服务网站需要多少钱17网站一起做网店的流程
  • 怎么做网站流量统计惠州市两学一做网站
  • 本地拖拽网站建设上海新增感染呈下降趋势
  • 网站建设链接毕业设计 网站建设选题
  • 佛山企业网站设计惠州企业网站seo
  • wordpress双站 中英文在中国建设工程造价管理协会网站
  • 官方制作网站长沙网站seo报价