python自动化测试-D8-学习笔记之一(面向对象编程)
生活随笔
收集整理的這篇文章主要介紹了
python自动化测试-D8-学习笔记之一(面向对象编程)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#類 一類東西,一個模型
#實例 #通過這個模型造出來的東西
#對象 #實例
#實例化 #就是造實例的過程
class Cat(object): #新式類書寫方式def __init__(self,name): #__init__ 構造函數,類里面可以有,也可以沒有,構造函數時實例化的時候就會執(zhí)行的函數self.name = namedef cry(self):print('%s在哭泣'%self.name)xiaohei = Cat('Jaryy') #實例化一個對象 xiaohei.cry() #實例化后調用類里面的方法(函數),類里面的方法調用才會運行,不調用不會運行
#面向的對象的特性
#封裝
#就是把零散代碼封裝成一個函數,或者封裝成一個類
#繼承
#就是父類有的東西,你也有。 class JxFather(object):addr = '密云'def __init__(self,num):self.house_num = numdef makeMoney(self):print('xx')print('sdfjksdjfklsdjfsdfsdf23423sdfs,秘密6')class Jx(JxFather):#繼承了JxFather這個類def __init__(self):self.name = 'wjx'print('jx')def dabaojian(self):print('拔出大寶劍') class JxSon(Jx):print('jjjj')wdb = JxSon()#父類和父類的父類中的東西,wdb這個實例中全都有 wdb.makeMoney()
#方法 就是類里面有什么功能,其實就是類里面的函數
#構造函數
初始化這個對象,你想讓他給你傳哪些東西
他會在這個類實例化的時候自動執(zhí)行。
#析構函數
它是在這個實例被銷毀的時候自動執(zhí)行的。
#類里面的函數如果有多次調用,而且還要獲取到他的返回值,那就用return
如果這個變量就用了一次,那么就用self
#類變量,類屬性,是一個意思
存在類里面的,一般一些公共的東西,不會變的,用類變量 class My(object):country = 'Janpan' #類變量__salt = '&2342bkjh234234'def __init__(self):self.__cup = '樂扣' #私有變量,變量前面加上兩個下劃線,類外部不可以調用,只能在類內部使用print('cup is %s'%self.__cup)# self.__my_money()def bad(self):# print('【%s】壞掉了'%self.__cup)# self.__cup = '款泉水瓶'print('又換了個杯子是%s'%self.__cup)
#實例變量
實例化的時候才創(chuàng)建的變量。 class My(object):addr='changping'def __init__(self,name):self.name=namedef cup(self):self.bz='cupper'gl=My('gaili') gl.cup() print(gl.bz)# bz 這個變量,只有對象實例化后且調用gl.cup()后才存在,如果不調用gl.cup()這個函數,bz這個變量就是不存在的
#類方法
通過類名可以直接調用,不需要實例化,可以訪問類屬性,不可以訪問實例屬性 class My(object):country = 'Janpan'@classmethoddef ddl(cls):#類方法,通過類名可以直接調用print(cls.country)My.ddl()#不需要實例化,類名可以直接調用 #靜態(tài)方法
就是寫在類里面的一個普通函數而已。 class Person:grade = 1 def sayHi(self): # 加self區(qū)別于普通函數print("Hello, your name is?")@staticmethod # 聲明靜態(tài),去掉則編譯報錯;還有靜態(tài)方法不能訪問類變量和實例變量def sayName(): # 使用了靜態(tài)方法,則不能再使用selfprint("my name is king")
Person.sayName() #可以通過類名直接調用# 運行結果:my name is king
#實例方法
必須實例化之后才可以調用的方法
類里面的函數,如果第一個參數是self,那么就是一個實例方法
#屬性方法
把一個方法變成一個變量
屬性方法也是一個實例方法,需要實例化才能使用。
屬性方法同樣可以通過實例方法實現
如果你使用屬性方法的話,那么必須得有返回值,而且不能有入參。 class Calc(object):def __init__(self,a,b):self.a = aself.b = bdef add(self):return self.a+self.b@property #通過這個關鍵字變成一個類屬性def add2(self):return self.a+self.b
c=Calc(1,2)
print(c.add2)#實例化后直接調用,后面不用加()
運行結果:3
#私有
私有屬性、變量
私有方法、函數
方法或者變量,在前面加上__,(兩個下劃線),它就是一個私有方法/私有變量
私有方法或者變量在類里面隨便用,出了類就不好使,類外部調用私有變量或者方法,就會報錯,
#實例 #通過這個模型造出來的東西
#對象 #實例
#實例化 #就是造實例的過程
class Cat(object): #新式類書寫方式def __init__(self,name): #__init__ 構造函數,類里面可以有,也可以沒有,構造函數時實例化的時候就會執(zhí)行的函數self.name = namedef cry(self):print('%s在哭泣'%self.name)xiaohei = Cat('Jaryy') #實例化一個對象 xiaohei.cry() #實例化后調用類里面的方法(函數),類里面的方法調用才會運行,不調用不會運行
#面向的對象的特性
#封裝
#就是把零散代碼封裝成一個函數,或者封裝成一個類
#繼承
#就是父類有的東西,你也有。 class JxFather(object):addr = '密云'def __init__(self,num):self.house_num = numdef makeMoney(self):print('xx')print('sdfjksdjfklsdjfsdfsdf23423sdfs,秘密6')class Jx(JxFather):#繼承了JxFather這個類def __init__(self):self.name = 'wjx'print('jx')def dabaojian(self):print('拔出大寶劍') class JxSon(Jx):print('jjjj')wdb = JxSon()#父類和父類的父類中的東西,wdb這個實例中全都有 wdb.makeMoney()
#方法 就是類里面有什么功能,其實就是類里面的函數
#構造函數
初始化這個對象,你想讓他給你傳哪些東西
他會在這個類實例化的時候自動執(zhí)行。
#析構函數
它是在這個實例被銷毀的時候自動執(zhí)行的。
#類里面的函數如果有多次調用,而且還要獲取到他的返回值,那就用return
如果這個變量就用了一次,那么就用self
#類變量,類屬性,是一個意思
存在類里面的,一般一些公共的東西,不會變的,用類變量 class My(object):country = 'Janpan' #類變量__salt = '&2342bkjh234234'def __init__(self):self.__cup = '樂扣' #私有變量,變量前面加上兩個下劃線,類外部不可以調用,只能在類內部使用print('cup is %s'%self.__cup)# self.__my_money()def bad(self):# print('【%s】壞掉了'%self.__cup)# self.__cup = '款泉水瓶'print('又換了個杯子是%s'%self.__cup)
#實例變量
實例化的時候才創(chuàng)建的變量。 class My(object):addr='changping'def __init__(self,name):self.name=namedef cup(self):self.bz='cupper'gl=My('gaili') gl.cup() print(gl.bz)# bz 這個變量,只有對象實例化后且調用gl.cup()后才存在,如果不調用gl.cup()這個函數,bz這個變量就是不存在的
#類方法
通過類名可以直接調用,不需要實例化,可以訪問類屬性,不可以訪問實例屬性 class My(object):country = 'Janpan'@classmethoddef ddl(cls):#類方法,通過類名可以直接調用print(cls.country)My.ddl()#不需要實例化,類名可以直接調用 #靜態(tài)方法
就是寫在類里面的一個普通函數而已。 class Person:grade = 1 def sayHi(self): # 加self區(qū)別于普通函數print("Hello, your name is?")@staticmethod # 聲明靜態(tài),去掉則編譯報錯;還有靜態(tài)方法不能訪問類變量和實例變量def sayName(): # 使用了靜態(tài)方法,則不能再使用selfprint("my name is king")
Person.sayName() #可以通過類名直接調用# 運行結果:my name is king
#實例方法
必須實例化之后才可以調用的方法
類里面的函數,如果第一個參數是self,那么就是一個實例方法
#屬性方法
把一個方法變成一個變量
屬性方法也是一個實例方法,需要實例化才能使用。
屬性方法同樣可以通過實例方法實現
如果你使用屬性方法的話,那么必須得有返回值,而且不能有入參。 class Calc(object):def __init__(self,a,b):self.a = aself.b = bdef add(self):return self.a+self.b@property #通過這個關鍵字變成一個類屬性def add2(self):return self.a+self.b
c=Calc(1,2)
print(c.add2)#實例化后直接調用,后面不用加()
運行結果:3
#私有
私有屬性、變量
私有方法、函數
方法或者變量,在前面加上__,(兩個下劃線),它就是一個私有方法/私有變量
私有方法或者變量在類里面隨便用,出了類就不好使,類外部調用私有變量或者方法,就會報錯,
“my.__my_money()
AttributeError: 'My' object has no attribute '__my_money'”
轉載于:https://www.cnblogs.com/blackbird0423/p/8493866.html
總結
以上是生活随笔為你收集整理的python自动化测试-D8-学习笔记之一(面向对象编程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实用:前端小白的切图技巧
- 下一篇: python 之CORS,VUE+res