Python-⾯向对象编程-什么是Python类、类对象、实例对象什么是对象和类
Python 类
类定义语法
最简单的类定义看起来像这样
class ClassName:
<statement-1>
.
.
.
<statement-N>
类定义与函数定义 (def 语句) ⼀样必须被调⽤执⾏才会起作⽤
类命名空间
当定义类时,会创建⼀个新的命名空间,也是⼀个局部作⽤域
上⾯的类定义栗⼦⾥,statement-1 到 statement-N 就是这个类的命名空间
类的取名建议规则
类名中的所有单词⾸字母要⼤写,采⽤驼峰命名法(例 GameCase )的书写⽅式
最简单的⼀个类
class Dog:
pass
这个类没有属性也没有⽅法
实例化类和实例化对象实际应⽤中,很少会创建空类,因为空类没有任何实际意义
包含属性、⽅法的⼀个类
class Person:
def introduce(self):
print('My name is %s, I am %d years old' % (self.name, self.age))
Person 类,有⼀个⽅法 introduce,有两个属性 name、age
通过 Person 类创建两个实例对象
# 对象⼀
tom = Person()
# 对象属性
tom.name = 'tom'
tom.age = 10
# 对象⼆
jerry = Person()
# 对象属性
jerry.name = 'jerry'
jerry.age = 20
# 调⽤对象的⽅法
tom.introduce()
jerry.introduce()
# 输出结果
My name is tom, I am 10 years old
类对象
什么是类对象
声明了⼀个类,它就是⼀个类对象
程序运⾏时,在内存中就会创建⼀个类对象,有且只有⼀个
类对象也有⾃⼰的属性和⽅法,分别叫做:类属性、类⽅法(后⾯详解)
打印下类对象看看
打印的就是⼀个类对象和内存地址
类对象⽀持两种操作
属性引⽤
实例化
属性引⽤
使⽤ Python 所有属性引⽤的标准语法:
有效的属性名称是类对象被创建时存在于类命名空间中的所有名称
有效的属性引⽤
MyClass.i :返回⼀个整数
MyClass.f :返回⼀个函数对象
MyClass.__doc__:返回当前类的⽂档字符串
My name is  jerry, I am 20 years old
# 类对象
class  person:
pass
print (person)
print (id(person))
# 输出结果
<class  '__main__.person'>
140485598521200
Obj.name class  MyClass:
"""A simple example class"""
i = 12345
def  f(self):
return  'hello world'
print (MyClass.i)
print (MyClass.f)
print (MyClass.__doc__)
# 输出结果
12345
<function MyClass.f at 0x10f43f310>
A simple example class
实例化
实例化其实就是调⽤类对象,从⽽创建⼀个实例对象
创建类的新实例并将此对象分配给局部变量 c
实例对象
什么是实例对象
通过类实例化操作⽣成对象就是实例对象
⼀个类可以多次实例化,⽣成多个实例对象
三个 person 类实例对象,分别有⾃⼰独⽴的内存地址
常说的⾯向对象编程是什么
设计类
创建类实例对象
实例对象调⽤⽅法
创建实例对象详解
在内存
中为对象分配空间
调⽤初始化⽅法  为对象初始化
对象创建后,内存中就有⼀个类的实例对象了
c = MyClass()
# 实例对象
class  person:
pass
# 实例化:类名()
p1 = person()
p2 = person()
p3 = person()
print (p1, id(p1))
print (p2, id(p2))
print (p3, id(p3))
# 输出结果
<__main__.person object at 0x10e42b8b0> 4534220976
<__main__.person object at 0x10e42b880> 4534220928
<__main__.person object at 0x10e42b850> 4534220880
__init__
由此可见,⼀个类可以有很多个对象,每个对象都有属于⾃⼰的属性、⽅法;
创建出来的 对象 叫做 类的 实例对象
创建对象的 ⾏为 叫做 实例化
对象的属性 叫做 实例属性
对象调⽤的⽅法 叫做 实例⽅法
__init__、实例属性、实例⽅法后续详解
知识点每个对象都有⾃⼰独⽴的内存空间,保存⾃⼰的属性
但是实例⽅法在内存中都只有⼀个,实例⽅法中的  就是实例对象的引⽤,当对象调⽤实例⽅法时,会默认把实例对象传给⽅法内部如果不懂的话,看看下⾯代码的输出就知道啦;  是⽤于获取对象的内存地址
可以看到,两个实例对象调⽤的实例⽅法是同⼀个内存地址
self id()class  person():
def  __init__(self, name):
self.name = name
print (f "init-{self.name} ", id(self))
def  test(self):
print (f "test-{self.name} ", id(self))
p1 = person("p1")
print ("p1-", id(p1))
print ("p1 fun-", st))
p2 = person("p2")
print ("p2-", id(p2))
print ("p2 fun-", st))
# 输出结果
init-p1  4435237568
p1- 4435237568
p1 fun - 4435260032
init -p2  4435237472
p2- 4435237472
p2 fun - 4435260032

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。