Python 的所有对象都有三个特性:
身份:每个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数 id() 来得到,可以简单的认为这个值是该对象的内存地址。
类型:对象的类型决定了对象可以保存什么类型的值,有哪些属性和方法,可以进行哪些操作,遵循怎样的规则。可以使用内建函数 type() 来查看对象的类型。
值:对象所表示的数据
类和实例
python 中创建类和对象
创建类
使用关键字 class
class Foo:
pass
class Foo():
x = 1
def func(self):
pass
class Foo():
x = 1
def __init__(self):
self.x = 100
构造方法
__init__ 是Python中一个特殊的函数名,是一个类实例化对
象的一个初始化方法
self 参数也是python的一个特殊参数的名称,约定俗成的名字
self 实际上指的就是正在被创建的对象本身
class Person(object):
def __init__(self, name):
self.name = name # 属性
# self 可以其他的变量名,但是 self 是业界规范。
实例化对象
类名加上小括号就可创建一个对象了,这个过程也叫实例化对象。
class Person():
def __init__(self, name):
#print(type(self), self)
self.Name = name
# 实例化对象
teacher = Person("yangge")
属性
class Person():
city = "BeiJing" # 类的数据属性
def __init__(self,name,age):
self.Name = name # 实例的数据属性
self.Age = age
def run(self):
print('{} is
running'.format(self.Name))
类属性可以被类和对象调用 , 是所有对象共享的
实例属性只能由对象调用
类的其他属性
# 查看类的名字(这里的类名是字符串类型的 )
Person.__name__, type(Person.__name__)
# 查出的是一个字典, key为属性名,value为属性值
Person.__dict__
Person.__doc__ # 就是把注释显示出来
Person.__class__ # 自己是哪个类
类名称空间
print(Person.__dict__)
print(Person.__dict__['run'])
对象名称空间
print(teacher.__dict__)
print(teacher.__dict__.get('Name'))
对象可以使用类命名空间里的变量
teacher.city
# 局部 ---> 类
# 对象不会去全局找,只会在类的范围找。
总结:
类有数据属性和函数属性
对象只有数据属性
对象的绑定方法
print(Person.run)
print(