类对象及类属性

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))
原文地址:https://www.cnblogs.com/pengwa1226/p/10251845.html