面向对象思想
的必须有对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切事物皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
类:具有相同特征(属性和行为)事物的抽象
例:狗是一类
对象:某个类的具象
例:我家的大白(大白是一只狗)
类体:两部分:变量部分,方法(函数)部分
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")
class Person: mind="有思想的" work="会工作的" money="会赚钱,也会花钱的" def like(self): print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")print(Person.__dict__){ '__module__': '__main__', 'mind': '有思想的', 'work': '会工作的', 'money': '会赚钱,也会花钱的', 'like':, 'dream': , 'die': , '__dict__': , '__weakref__': , '__doc__': None}
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")print(Person.__dict__["work"])会工作的
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")print(Person.mind)有思想的
注意:变量部分不可以增删改查
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")Person.__dict__["money"]="百万先生"print(Person.__dict__["money"])结果:报错
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")Person.love="有爱的"Person.work="不会工作的"del Person.mindprint(Person.__dict__)print(Person.mind)
综上:
语法
-
定义类需要使用关键字:class
-
类名:原则上只要符合标识符的命名规范即可,但是我们通常每个单词首字母大写命名.例如:Person
-
不要忘记类名后面的冒号" : "
self:
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")Person.dream(11) #()中必须有一个值
操作类中的方法 :增,删,改,查
class Person: mind="有思想的" # 变量部分,静态变量,静态字段 work="会工作的" money="会赚钱,也会花钱的" def like(self): # 方法部分,函数,动态变量 print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")Person.age="18"print(Person.__dict__) #增del Person.likeprint(Person.__dict__) #删Person.like="美女"print(Person.__dict__) #改Person.dream(11) #查
类名的角度 操作类中的静态变量 1, Person.__dict__ 查询类中的所有的内容 (不能进行增删改操作) 2, 万能的 . 对类中的单个的变量进行增删改查,用 万能的 点
类名+()的这个过程:实例化的过程(创建一个对象的过程), Person() 实例化对象,实例,对象
class Person: mind="有思想的" work="会工作的" money="会赚钱,也会花钱的" def __init__(self): print(self) print(666) def like(self): print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的") ret=Person() print(ret)
1, 类名+()产生一个实例(对象,对象空间.) 2, 自动执行类中的__init__方法,将对象空间传给__init__的self参数, 3, 给对象封装相应的属性. print(ret.__dict__)
对象的角度:
class Person: mind="有思想的" work="会工作的" money="会赚钱,也会花钱的" def __init__(self,name,age,hobby): self.name=name self.age=age self.hobby=hobby def like(self): print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")ret=Person("xiaomin",18,"打篮球")print(ret)print(ret.__dict__) <__main__.Person object at 0x000001ADFFCE13C8> {'name': 'xiaomin', 'age': 18, 'hobby': '打篮球'}
操作对象中的静态变量(增删改查)
class Person: mind="有思想的" work="会工作的" money="会赚钱,也会花钱的" def __init__(self,name,age,hobby): self.name=name self.age=age self.hobby=hobby def like(self): print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")ret=Person("xiaomin",18,"打篮球")print(ret.name) #查ret.high=175 print(ret.__dict__) #增 del ret.nameprint(ret.__dict__) #删ret.age=28print(ret.__dict__) #改
对象操作类中的静态变量 : 只能查询
# class Person:# mind="有思想的"# work="会工作的"# money="会赚钱,也会花钱的"# def __init__(self,name,age,hobby):# self.name=name# self.age=age# self.hobby=hobby# def like(self):# print("喜欢台球")# def dream(self):# print("有理想的")# def die(self):# print("会死亡的")# ret=Person("xiaomin",18,"打篮球")# print(ret.mind)
对象调用类中的方法 (工作中 通过对象执行类中的方法,而不是通过类名)
class Person: mind="有思想的" work="会工作的" money="会赚钱,也会花钱的" def __init__(self,name,age,hobby): self.name=name self.age=age self.hobby=hobby def like(self): print(self) print("喜欢台球") def dream(self): print("有理想的") def die(self): print("会死亡的")ret=Person("xiaomin",18,"打篮球")ret.like()print(ret)<__main__.Person object at 0x0000014CB4D81400>喜欢台球<__main__.Person object at 0x0000014CB4D81400>
class Person: mind="有思想的" work="会工作的" money="会赚钱,也会花钱的" def __init__(self,name,age,hobby): self.name=name self.age=age self.hobby=hobby def like(self): print("%s喜欢台球" % self.name) def dream(self): print("有理想的") def die(self): print("会死亡的")ret=Person("xiaomin",18,"打篮球")ret.like() xiaomin喜欢台球