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

深圳哪家做网站最好百度推广管家

深圳哪家做网站最好,百度推广管家,万宁网站建设,建设银行网站查余额前言 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://www.hkea.cn/news/290988/

相关文章:

  • 网站怎么发布信息百度推广优化技巧
  • 西安软件培训百度百科优化排名
  • 网站上文章加入音乐是怎么做的网页代码
  • 深圳公布最新出行政策徐州seo招聘
  • wordpress的漏洞seo优化知识
  • 网站建设高端seo和sem分别是什么
  • 成交功能网站怎么推广自己的产品
  • 北京宣传片网站seo综合查询
  • 滨海网站建设公司百度指数的使用
  • 湛江网站建设外包seo到底是什么
  • 做收集信息的网站河源市企业网站seo价格
  • 有赞短链接生成汕头seo推广
  • 团队做网站分工搜索引擎案例分析结论
  • 企业网站的建设过程做整站优化
  • 最简单的cms网站怎么做惠州抖音seo
  • 做网站销售怎么开发客户自己做一个网站
  • wordpress发布文章空白整站优化 mail
  • vs怎么做网站的首页seo知识培训
  • 网站建设的一般步骤包括知乎关键词排名工具
  • 网页设计怎样做一个网页seo软件哪个好
  • 销售性网站建设需求seo案例
  • 企业怎样选择域名做网站电脑突然多了windows优化大师
  • 网站一元空间有哪些呀品牌策划方案范文
  • 最便宜的网站建设企点
  • 网站代码加密深圳新闻今日最新
  • 不要钱做网站软件网站seo优化效果
  • 公司做网站提供产品加盟费互联网销售怎么做
  • 视频网站开发架构百度app最新版本
  • 网站上内容列表怎么做的网站模板中心
  • 上海利恩建设集团有限公司网站国内好用的搜索引擎