類物件及類屬性
阿新 • • 發佈:2019-01-11
class MyClass:
"""A example class"""
x = 'abc' # 類的屬性
def foo(self): # 類屬性foo,也是方法
print(self.x)
return "My Class"
類物件,類的定義就會生成一個類物件
類的屬性,類定義中的變數和類中定義的方法都是類的屬性
類變數,X就是類MyClass的變數
MyClass中,x、foo都是類的屬性,__doc__也是類的屬性
foo方法是類的屬性,如同吃是人類的方法,但是每一個具體的人才能吃東西,也就是說吃是人的例項才能呼叫的方法。
foo是method方法物件,不是普通的函式物件function了,它必須至少有一個引數,且一個引數必須是self(self可以換個名字),這個引數位置就留給了self.
self 指代當前例項本身---不是類本身eg:print(MyClass.foo(1))--不對,報錯;
類是類型別的例項--print(type(MyClass))
# class MyClass:
# """A example class"""
# x = 'abc' # 類的屬性
# def foo(self): # 類屬性foo,也是方法
# print(self.x)
# return "My Class"
#
#
# print(MyClass) #在main中執行<class '__main__.MyClass'>
# print(MyClass.__name__) #列印類的名稱
# print(MyClass.x)
# print(MyClass.foo) #列印的是記憶體地址,也是一個類;類的物件即類的例項
# print(MyClass.__doc__) #列印描述性的文字:A example class
#
# print('------------------')
# a=MyClass()#例項化,初始化
# print(a.foo()) #print函式接類的方法的返回值,沒有返回值就列印None
class MyClass:
"""A example class"""
x = 'abc' # 類的屬性
def foo(self): # 類屬性foo,也是方法
print(id(self))
print(self)
return self
a=MyClass()
# print(a.foo)
print(a.foo())
print(id(a))