标签:game OLE 对象 静态 函数 ide image elf 结构
从结构上理解:面向对象分为两部分
class A: name = ‘alex‘ # 静态属性,静态变量,静态字段。 def func1(self): # 函数,动态属性,方法 pass
函数vs面向对象:
def ragister(argv): pass def login(argv): pass def shoppingcar(argv): pass
class Shopping_Car: def __init__(self): # 特殊方法 pass def ragister(self): pass def login(self): pass def shoppingcar(self): pass
类以及对象:
类:具有相同属性或功能的一类实物
对象:对象是类的具体体现。
首先,先来定义一个类
# 一个公共框架,一个公共模型 class Person: animal = ‘高级动物‘ walk_way = ‘直立行走‘ language = ‘语言‘ def eat(self): print(‘吃饭‘) def work(self): print(‘工作‘)
类名的使用:
1 # 一个公共框架,一个公共模型 2 class Person: 3 animal = ‘高级动物‘ 4 walk_way = ‘直立行走‘ 5 language = ‘语言‘ 6 7 def eat(self): 8 print(‘吃饭‘) 9 10 def work(self): 11 print(‘工作‘) 12 13 # 类名 14 15 # 1.查看类中所有的属性及方法 __dict__ 16 17 print(Person.__dict__) 18 print(Person.__dict__[‘animal‘]) # 通过__dict__方式 单独的属性及方法可以查但是不能增删改 19 # 工作中,学习中一般用到__dict__ 就是查看类中所有的属性及方法,不进行其他操作。 20 21 # 2.查看,(增删改)类中某个,某些属性,某个方法,用万能的点 . 22 print(Person.animal) # 查 23 print(Person.language) 24 Person.name = ‘alex‘ # 增 25 print(Person.name) 26 Person.animal = ‘低级动物‘ # 改。虽然上面没改,但是在内存级别已经改动了 27 print(Person.animal) 28 # del Person.walk_way # 删 29 30 # 3.操作方法 一般不通过类名操作 31 # Person.__dict__[‘work‘](888) # 不建议__dict__执行方法 32 Person.work(999) 33 Person.eat(999)
对象的使用:
实例化过程内部进行了三个阶段:
1 class Person: 2 animal = ‘高级动物‘ 3 walk_way = ‘直立行走‘ 4 language = ‘语言‘ 5 6 def __init__(self,name,age): # 功能:给对象封装属性 7 print(self) # self = Person() 地址是一样的 8 print(666) 9 self.name1 = name 10 self.age1 = age 11 12 def eat(self): 13 print(‘吃饭‘) 14 15 def work(self): 16 print(‘工作‘) 17 18 19 obj = Person(‘alex‘, 37) # 这个过程是一个实例化过程,它会实例化一个对象。(它会在内存实例化一个对象空间) 20 print(obj) 21 print(obj.name1)
1 class Person: 2 animal = ‘高级动物‘ 3 walk_way = ‘直立行走‘ 4 language = ‘语言‘ 5 6 def __init__(self,name,age): # 功能:给对象封装属性 7 print(self) # self = Person() 地址是一样的 8 print(666) 9 self.name1 = name 10 self.age1 = age 11 12 def eat(self): 13 print(‘吃饭‘) 14 15 def work(self): 16 print(‘工作‘) 17 18 obj = Person(‘alex‘, 37) 19 # 对象: 20 # 对象操作对象空间 21 # 对象查看对象空间的所有属性 __dict__ 22 print(obj.__dict__) 23 # 对象操作对象的某个属性 增删改查 万能的点 . 24 obj.sex = ‘nan‘ # 增 25 print(obj.__dict__) 26 # del obj.sex # 删 27 obj.age1 = 99 # 改 28 print(obj.__dict__) 29 print(obj.name1) # 查 30 31 # 对象操作类空间的属性 只能查 32 print(obj.animal) 33 34 35 # 对象操作类空间的方法 36 obj.eat()
1.对象为什么能调用类中的属性与方法?
obj.属性名 先从自己空间去找,没有此属性它会通过类对象指针从类中去找,类中找不到,会从父类去找。
对象只能查看类中的属性,不能增删改类中的属性。
2.类能不能调用对象的属性?
不能
3.对象与对象之间可以不可以互相调用?
同一个类实例化出来的对象是不能互相访问的。
但是不同类形成的实例化对象有可能互相访问。
类与对象空间:
class GameRole: rule = ‘游戏规则‘ def __init__(self,area,nickname,hp,ad): self.area = area self.nickname = nickname self.hp = hp self.ad = ad def attack(self): print(‘谁施展了一个攻击‘) gailun = GameRole(‘德玛西亚‘, ‘草丛伦‘, 1000, 75) yasuo = GameRole(‘艾欧尼亚‘, ‘托儿所‘, 500, 150) # 1.对象为什么能调用类中的属性与方法 # obj.属性名 先从自己空间去找,没有此属性它会通过类对象指针从类中去找,类中找不到,会从父类去找。 print(gailun.hp) gailun.attack = 666 # 给对象增加属性 print(gailun.attack) # 666 gailun.rule = gailun.rule print(gailun.rule) # 游戏规则 gailun.nickname = ‘盖伦‘ print(gailun.nickname) # 对象只能查看类中的属性,不能增删改类中的属性 # 2. 类能不能调用对象的属性? 不能 # print(GameRole.area) 不能 # 3. 对象与对象之间可不可以互相调用 # 同一个类实例化出来的对象是不能互相访问的。 # 但是不同类形成的实例化对象有可能互相访问。 # 给对象封装属性: __init__ , 任意位置
标签:game OLE 对象 静态 函数 ide image elf 结构
原文地址:https://www.cnblogs.com/eaoo/p/9526035.html