在python面向对象编程中、属性分为_Python-面向对象编程(1.概述)
1.在 Python 中,面向對象編程主要有兩個主題,就是類和類實例
a.類和對象是相互關聯的,類是實例的定義,實例是類的具像化。
b.類分為新式類和經典類
新式類:(注 base 是繼承的父類,object 是所有類的父類)
class objectname(object):
define
經典類:
class objectname:
define
c. 實例化一個類,其實就是函數調用然后賦給一個變量,如果不賦值給一個變量,會被回收掉
objectvariable = objectname()
#coding:utf-8
"""Python 中的類 = 屬性(數據)+方法類對象簡稱為類,實例對象簡稱實例"""
class Person():
age = 18
def study(self):
print "go to school"
def love(self):
print "marry"
p = Person()
print p.age
p.study()
p.love()
#coding:utf-8
"""經典類和新式類"""
class NewClass(object):#新式類 帶object參數表示繼承object
pass
class ClassicClass():#經典類 不帶object參數表示不繼承object
pass
p = NewClass()
NewClass.c = 100
p.a = 1
p.b = 2
print p.a
print p.b
print p.c
#coding:utf-8
"""一切都可以看作類類的三個特性 封裝,繼承,多態"""
list1 = [1,2,3]
list2 = list('hello')#list也是個類,傳入參數給構造器
print list2
print issubclass(list,object)
print issubclass(dict,object)
#coding:utf-8
"""構造器"""
class Foo():
num = 5
def __init__(self,x,y):# self 只是一個標記,可以改成任意的字符
self.x = x
self.y = y
def print_xy(self):
print self.x,self.y
def print_num(self):
print self.num
print Foo.num
p = Foo(3,4)
p.print_xy()
p.print_num()
2.方法:改進一個類的手段就是添加功能也叫做方法,方法在類定義的時候定義然后只能被實例調用。所以調用一個類的方法的步驟是:
a.定義類以及方法
class foo(object):
"""define a class named foo"""
def print_x(self):
print "This is a class named foo"
note:***self ***代表實例對象本身,當實例調用方法的時候,是由解釋器自動傳入方法的
靜態方法和類方法不需要self,類方法需要的是類而不是實例
b.實例化一個類
foo_one = foo() """就像函數一樣去實例化,不使用new關鍵字"""
c.實例對象調用
foo_one.print_x()
3.創建一個類
a.關于__init__,init 可以看成是構造器(這樣理解,并不是構造)它在實例化的時候自動調用,自動傳入參數self以及其他(如果有)完成一些初始化的工作,就當成是一個特殊方法吧帶有init的類
class foo(object):
def __init__(self,name,phone):
self.name = name
self.phone = phone
def updatephone(self,phone):
self.phone = phone
note:init 有三個參數,但是只要傳入name,phone 這兩個參數,self實例化的時候自動傳入
4.創建實例
foo1 = foo('zhangsan',123456)
foo2 = foo('lisi',123456)
note:init 可以看成是實例化時類對其隱式調用,因為參數是完全一樣的。如果存在默認參數可以不傳入
5.訪問實例屬性
foo1.name
foo1.phone
foo2.name
foo2.phone
6.方法調用
foo1.updatephone('22222')"""updatephone需要兩個參數,
一個self自動傳入。另外可以通過訪問.phone屬性來驗證該方法是否成功"""
7.創建子類
如創建一個foo的子類,
class sub_foo(foo): """需要將父類 foo寫在括號中"""
def __init__(self,name,phone.email):"""如果重構了init,將不在執行父類中的init"""
foo.__init__(self,name,phone)"""這里的self是顯示調用在實例化的時候傳給父類"""
self.email = email
def updateemail(self,email):
self.email = email
note:子類繼承父類的屬性和方法,并且可以定制新方法而不會影響父類
8.使用子類
foo2 = sub_foo('lisi','123234','66.com')
總結
以上是生活随笔為你收集整理的在python面向对象编程中、属性分为_Python-面向对象编程(1.概述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python代码编辑器下载_编程猫Pyt
- 下一篇: cudnn7.6.5下载 solitai