面向对象的编程思想和Python的类,类的方法和属性,实例方法

前言:

类是面向对象编程的核心概念,面向对象的编程思想更灵活和扩展性更强。Python就是一门面向对象的语言。它可以方便的创建类和对象。

面向对象(Object Oriented 简称OO),是一种设计思想。面向对象中的对象(Object ),通常是指客观世界中存在的对象,这个对象具有唯一性,每个对象都有自己的特点,运动规律和内部状态:对象与对象之间可以相互联系、相互作用的。对象是一个抽象的概念,可以表示任意存在的食物。世界王五皆对象。

通常把对象划分为两个部分:静态和动态。静态部分被称为对象的“属性”,动态部分指对象的“行为”。例如:一个人就可以看作是一个对象,性别就可以看作是 人的 “属性”,而走路就是对象的“行为”

类是封装对象的属性和行为的载体,具有相同属性和行为的一类实体可以成为类。例如人类,人类能够直立行走,煮饭,吃饭,睡觉等属于人类的行为,类的属性:头发,四肢等

面向对象程序设计的特点:封装、继承、多态。

一、封装式面共享对象编程的核心思想,将对象的属性和行为封装起来的载体就是,类通常会对用户隐藏实现细节,这就是封装的思想。例如,咱们使用的计算机,只要使用计算机的功能就可以,不会考虑内部是如何工作的。

二、继承是实现重复利用的重要手段,子类通过继承复用父类的属性和行为。

父类不能继承子类的方法

子类可以继承父类的方法

三、多态将父类对象应用于子类的特征就是多态。

类的定义和使用

Python中,类表示具有相同属性和方法的对象的集合。在使用类时,要先定义,然后实例化类,实例化后就可以访问类中的属性和方法了。

一、定义类,在Python中定义类使用class关键字,class ClassName: #class 类名声明类

定义类如下:

class  Person:     # 类名首字母最好大写,多个单词组成的,每个首字母大写

class Person():  #可以加上这个空的括号

class Person(object):  #集成父类object,python3中默认集成改类,所以加不加没有任何区别。

二、创建类的实例:

实例化类

people = Person()

三、魔术方法__init__(self)

1、在创建类后,类会自动化创建一个__init__(self)方法,每当创建一个类的新实例时,Python都会自动执行它。__inti__(self)必须包含一个self参数且为第一个参数,self参数是一个指向实例本身的引用,用于访问类中的属性方法。在方法调用时会自动传递实际参数self。

class Person:

    def __init__(self):

        print("我是类")

people01=Person()

运行结果如图,可以看出在创建类时,虽然没有为__init__方法指定参数,该方法会自动化执行

除了self参数外,还可以自定义一些参数,参数之间用逗号进行分隔。如下

class Person:

    def __init__(self,name,age,stature):

        print('我是人类,姓名,年龄,身高为:')

        print(name)

        print(age)

        print(stature)

运行结果如图:

2、在__init__()方法的名称中,开头和结尾处是两个下划线,这是为了区分Python中的默认方法和普通方法

四、创建类的成员并访问

类的成员主要由实例方法和数据成员组成。在类中创建了类的成员之后,可以通过类的实例进行访问。(一)所谓实例方法就是在类中定义的函数,该函数是一种在类的实例上操作的函数。同__init__()方法一样,实例方法的第一个参数必须是self,并且必须包含一个self参数。创建类的实例方法如下:

from selenium import webdriver

import time

class Commonshare:

    def __init__(self):#初始化浏览器

        self.driver=webdriver.Chrome()

        self.driver.maximize_window()

    def open_url(self,url):

        self.driver.get(url)

        time.sleep(3)

1.open_url()为类的实例方法。

(1)类的实例方法名称开头一般使用小写字母。

(2)self参数必填。

(3)url是除了self参数外的参数。两个参数之间用“,”隔开。url是形式参数

(4)self.driver.get(url)和time.sleep(3)为方法体。

2.实例方法和Python中函数的区别是,函数是实现某个独立的功能,而实例方法是实现中的有一个行为,是类的一部分。

3.创建方法后,就可以通过类的实例名称 . 调用该方法。具体如下

from encapsulationen.email_enca import Commonshare

class Login(Commonshare):

    def longin(self,name,pwd):

        self.open_url('https://mail.126.com/')

(1)https://mail.126.com/ 为实际参数。实际参数的个数与创建实例方法open_url(self,url)中的个数相同。self指向实例本身的引用,所以在调用该方法时不需要传。因此该方法传递一个参数即可。

(二)数据成员是类中定义的变量,即属性。根据定义位置,又可以分为类属性和实例属性。

1.类属性是指定义在类中,并且在方法体外的属性。类属性可以在类的所有实例间进行共享。

类属性可以通过类名或实例名访问。如下

from selenium import webdriver

import time

class Commonshare:

    url='https://mail.126.com/'#定义类的属性    def __init__(self):#初始化浏览器        self.driver=webdriver.Chrome()

        self.driver.maximize_window()

    def open_url(self,url): #实例方法       

    self.driver.get(url)

        time.sleep(3)

#python中方法和函数的区别,函数是if __name__ == '__main__':

    com = Commonshare()

    com.open_url(com.url)#使用类的属性 

2.实例属性

实例属性是指定义在类的方法中的属性,只作用于当前实例中

from selenium import webdriver

import time

class Commonshare:

    def __init__(self):#初始化浏览器        self.driver=webdriver.Chrome()

        self.driver.maximize_window()

    def open_url(self): #实例方法        url = 'https://mail.126.com/'  # 定义实例属性,仅在该方法中可以使用        self.driver.get(url)

        time.sleep(3)

if __name__ == '__main__':

    com = Commonshare()

    #com.url#不能访问   

    com.open_url()

综上所述,本文从面相对象的角度,介绍类的定义,类的属性和方法。属性的访问限制。如何使用类和方法。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容