1. 程式人生 > >面向對象註意事項

面向對象註意事項

python 運行 data 而且 作用 註意 沒有 inf strong

在面向對象中,有實例變量和類變量,實例變量為類對象的實例成員,而類變量不僅類可以直接調用,而且類的對象也可以調用。類對象可以對實例變量進行添加、修改、刪除操作等。。。

下面就用個示例來做參考:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

class  PersonInfo(object):
    commity_data = 123
    def  __init__(self,name,age):
        self.name = name
        self.age = age
    def  weight(self):
        print(‘%s weight is high‘% self.name )

    def  happie(self):
        print(‘happie de age is %‘ % self.age)

p1 = PersonInfo(‘goser‘,20)
p2 = PersonInfo(‘jain‘,23)
p1.commity_data = ‘change_data‘
p1.sex = 1
p1.age = 28
del p1.name
print(p1.sex,p1.age,p1.commity_data,p2.commity_data)

PersonInfo.commity_data = ‘test‘

print(p1.commity_data,p2.commity_data)

代碼裏的

p1.sex = 1表示對類對象p1做變量的添加操作,
p1.age = 28表示對類對象p1做變量的修改操作
del p1.name表示對類對象p1做變量的刪除操作
p1.commity_data = ‘change_data‘表示對類對象p1調用類變量時對類變量的修改操作,這個操作只是對象p1在自己的內存地址中加上變量commity_data,切其值被賦予了新值為‘change_data’,這個變更類變量的值只對對象p1生效,對對象p2不起作用。
PersonInfo.commity_data = ‘test‘表示類調用類變量時對類變量的修改,這個修改只對對象p2生效,因為對象p2內存地址中沒有添加類變量commity_data,所以p2還是引用了類中的類變量,而p1沒有變化,依然調用的是自己後來添加的commity_data


運行結果:
(1, 28, ‘change_data‘, 123)
(‘change_data‘, ‘test‘)

在面向對象中的多繼承的註意事項:

python2中,經典類是按深度優先來繼承,新式類是按廣度優先來繼承的

python3中,經典類和新式類都是按廣度優先來繼承的。

面向對象註意事項