溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python面向?qū)ο?/h1>
發(fā)布時間:2020-07-21 23:39:56 來源:網(wǎng)絡(luò) 閱讀:172 作者:zjy1002261870 欄目:編程語言

class Foo:
"""
類成員分三大類:字段(普通字段,靜態(tài)字段)方法(普通方法,類方法,靜態(tài)方法)
屬性(普通屬性)
"""

注:所有成員中,只有普通字段的內(nèi)容保存對象中,即:根據(jù)此類創(chuàng)建了多少對象,在內(nèi)存中就有多少普通字段。

# 而其他的成員,則都保存在類中,即:無論對象的多少,在內(nèi)存中只創(chuàng)建一份。

# 靜態(tài)字段
county = '中國'

'''
屬性的定義和調(diào)用注意點(diǎn):
1.定義時,在普通方法的基礎(chǔ)上添加@property裝飾器;
2.定義時,屬性僅有一個self參數(shù);
3.調(diào)用時,無需括號

  方法:foo_obj.func()
  屬性:foo_obj.prop
注意:屬性存在意思是:訪問屬性時可以制造出和訪問字段完全相同的假象。
   屬性由方法變種而來,如果python中沒有屬性,方法完全可以代替其功能。
'''

python中的屬性其實(shí)就是類中方法的普通方法的變種

@property
def prop(self):
    return '這是一個屬性'

def __init__(self, user_name, age, sex) -> None:
    super().__init__()
    # 普通字段
    self.user_name = user_name
    self.age = age
    self.sex = sex
# 相同點(diǎn):對于所有的方法而言,均屬于類(非對象)中,所以,在內(nèi)存中也只保存一份。
# 不同點(diǎn):方法調(diào)用者不同、調(diào)用方法時自動傳入的參數(shù)不同
# 普通方法,至少有一個self參數(shù)
def play(self, hobby):
    print('%s %s 今年%s歲,%s' % (self.user_name, self.sex, self.age, hobby))

# 類方法,至少有一個cls參數(shù)
@classmethod
def class_func(cls):
    print('類方法')

# 定義靜態(tài)方法,無默認(rèn)參數(shù)
@staticmethod
def static_func():
    print('靜態(tài)方法')

xm = Foo('小敏', 25, '女')
xm.play('喜歡旅游')
Foo.static_func()
Foo.class_func()

直接訪問靜態(tài)字段

print(Foo.county)
print(xm.prop)

向AI問一下細(xì)節(jié)
AI