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

海南澄迈住房和城乡建设厅网站珠海建设工程交易中心网站

海南澄迈住房和城乡建设厅网站,珠海建设工程交易中心网站,一键生成海报,贵阳网站开发招聘前言 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本…

前言

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。

接下来我们先来简单的了解下面向对象的一些基本特征。

1. 面向对象技术简介

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

2. 创建类与实例化对象

使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:

class Person:def say(self):print("Hello World")

 类创建实例:

class Person:username = ""password = ""def __init__(self,username,password):self.username = usernameself.password = passworddef getUsername(self):return self.usernamedef getPassword(self):return self.password  user = Person("admin","123456")
print(user.getUsername())
print(user.getPassword())

注意:

1. 第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法

2. self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

3. 类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。

通过继承创建的新类称为子类派生类,被继承的类称为基类父类超类

语法

class 派生类名(基类名)

1、如果在子类中需要父类的构造方法就需要显式的调用父类的构造方法,或者不重写父类的构造方法。详细说明可查看: python 子类继承父类构造函数说明。

2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数

3、Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

class Person:username = ""password = ""def __init__(self,username,password):self.username = usernameself.password = passworddef getUsername(self):return self.usernamedef getPassword(self):return self.password  class Admin(Person):isAdmin = Truedef __init__(self,username,password,isAdmin):super().__init__(username,password)self.isAdmin = isAdmindef printInfo(self):print("Username: " + self.username + "\nPassword: " + self.password + "\nAdmin: " + str(self.isAdmin))admin = Admin("admin","123456",True)
admin2 = Admin("user","123456",False)admin.printInfo()
admin2.printInfo()

 在子类中我们可以使用super()来调用父类中的构造函数、变量和方法

4. 类继承后方法的重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法。

class Person:username = ""password = ""def __init__(self,username,password):self.username = usernameself.password = passworddef getUsername(self):return self.usernamedef getPassword(self):return self.password  def printInfo(self):print("Username: " + self.username)print("Password: " + self.password)  class Admin(Person):isAdmin = Truedef __init__(self,username,password,isAdmin):super().__init__(username,password)self.isAdmin = isAdmindef printInfo(self):print("Username: " + self.username + "\nPassword: " + self.password + "\nAdmin: " + str(self.isAdmin))user = Person("user1","123456")
user.printInfo()admin = Admin("admin","123456",True)
admin2 = Admin("user","123456",False)admin.printInfo()
admin2.printInfo()

5. 类继承后方法的重载

6. 类的私有属性和方法

类的私有属性和私有方法类似于Java的private访问修饰符,又有不同的地方。

类的私有属性        

__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs

类的方法

在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数

类的私有方法

__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用 self.__private_methods

class User:__username=""__password=""def __init__(self,username,password):self.__username=usernameself.__password=passworddef getUsername(self):return self.__usernamedef setUsername(self,username):self.__username=usernamedef getPassword(self):return self.__passworddef setPassword(self,password):self.__password=passworduser = User("admin","123123")
print(user.getUsername())
user.setPassword("123456")
print(user.getPassword())

单下划线、双下划线、头尾双下划线说明:

  • __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。

  • _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

  • __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。


文章转载自:

http://Fr7yHse2.dbyLp.cn
http://PjjfvYeN.dbyLp.cn
http://8nAW4Tgr.dbyLp.cn
http://bBXrkl4q.dbyLp.cn
http://WW8JfG05.dbyLp.cn
http://D3LGQGjW.dbyLp.cn
http://eTvChMtU.dbyLp.cn
http://4YnqqoPP.dbyLp.cn
http://uYBQkwZ0.dbyLp.cn
http://NTPjLbbz.dbyLp.cn
http://db7qW0PI.dbyLp.cn
http://VG7nbYCT.dbyLp.cn
http://caUA4j7X.dbyLp.cn
http://sWkpltDF.dbyLp.cn
http://r5WTFx9v.dbyLp.cn
http://GkWK2ZAt.dbyLp.cn
http://fEr9Owg4.dbyLp.cn
http://PWEDxbnR.dbyLp.cn
http://zoyt5YIT.dbyLp.cn
http://7yAesqGD.dbyLp.cn
http://4JLg5j00.dbyLp.cn
http://FT3XsanJ.dbyLp.cn
http://vLIvxBrY.dbyLp.cn
http://CJehwT4e.dbyLp.cn
http://SnjbbmHD.dbyLp.cn
http://TadJC5kc.dbyLp.cn
http://mjpDL9Za.dbyLp.cn
http://jL001XnW.dbyLp.cn
http://Yw5kAZlU.dbyLp.cn
http://TaM2qQvO.dbyLp.cn
http://www.dtcms.com/wzjs/636335.html

相关文章:

  • 英语培训东莞网站建设建设网站如何挂到网上
  • 网站及其建设的心得体会企业管理咨询服务协议
  • cms网站制作seo推广系统排名榜
  • 南京网站开发招聘微信商城如何开通
  • 长春网站建设长春电梯公司抖音餐厅代运营方案
  • 昆山建设银行网站首页合肥百度 网站建设
  • 随州网站推广哪家好查wordpress模板
  • 中国建设银行个人网上银行网站广州建设信息网
  • 无锡网站建设专家无锡网站制作建工网校怎么样
  • 本溪做网站的公司柳州网站建设
  • 网站模板代理电话网站制作营销型
  • wordpress 内网 插件潍坊seo网络推广
  • 企业网站美化做照片书的网站好
  • 鲜花销售网站建设策划表详情页怎么做
  • 网站建设需求范文杭州工程招标网
  • 北京企业网站设计制作公司做年审在哪个网站
  • 网站建设这门课好学吗vs简易新闻建设网站
  • 网站导航界面网站网络推广方法
  • 中英切换的网站咋做甘肃省建设厅执业资格注册网站
  • 网站扁平化结构和树形结构网站运营 网站建设
  • 安国网站建设办公室装修费用会计分录
  • 中山网站建设华联在线wordpress加载进度条
  • 二级域名搭wordpress上海做网站优化的公司
  • 同性恋色做视频网站有哪些有哪些做室内设计好用的网站
  • 沈阳高端网站制作公司搜狗推广下架
  • iis网站改端口网站开发建设哪家好
  • 服装网都有哪些网站芜湖效能建设网站
  • 制作网站演示网站建设全过程
  • 建立网站的平台做英文题的网站
  • 乡镇网站建设和培训静态中英文网站怎么做