18.07.23(初识面向对象)

类:具有相同属性和技能的食物        语法:class   类名:   类名的首字母大写  例:class Person:

对象(实例):具体的某一事物;具体类的表现;具体的实实在在的一个实例

实例化:类---->对象的过程

例:

class Preson:
soup = "有灵魂"
language = "语言"
mind = "有思想"

def __init__(self, name, sex, age): #self:内存空间
self.name = name
self.sex = sex
self.age = age

def eat(self):
print("%s在吃饭" % self.name)

def sleep(self):
print("%s在睡觉" % self.name)

def work(self):
print("%s在工作" % self.name)

1.类名角度

(1)调用类中的静态变量

方法一: 函数__dict__ 只能进行查找 不能进行增删改

例:

print(Preson.__dict__)
结果:{'__module__': '__main__', 'soup': '有灵魂', 'language': '语言', 'mind': '有思想', '__init__': <function Preson.__init__ at 0x000001E43FCD1A60>, 'eat': <function Preson.eat at 0x000001E43FCD1AE8>, 'sleep': <function Preson.sleep at 0x000001E43FCD1B70>, 'work': <function Preson.work at 0x000001E43FCD1BF8>, '__dict__': <attribute '__dict__' of 'Preson' objects>, '__weakref__': <attribute '__weakref__' of 'Preson' objects>, '__doc__': None}

例:

print(Preson.__dict__["soup"])  ==>有灵魂

方法二:  " . "  进行增删改查

例:

print(Preson.soup)
Preson.money = "运用货币"
Preson.language = "使用语言"
del Preson.soup
print(Preson.__dict__)
结果:有灵魂
{'__module__': '__main__', 'language': '使用语言', 'mind': '有思想', '__init__': <function Preson.__init__ at 0x000002194CF21A60>, 'eat': <function Preson.eat at 0x000002194CF21AE8>, 'sleep': <function Preson.sleep at 0x000002194CF21B70>, 'work': <function Preson.work at 0x000002194CF21BF8>, '__dict__': <attribute '__dict__' of 'Preson' objects>, '__weakref__': <attribute '__weakref__' of 'Preson' objects>, '__doc__': None, 'money': '运用货币'}

(2)调用类中的方法  基本不用

2.对象角度

(1)对象操作类中的静态变量只能查

例:

print(p.soup)    ==>有灵魂

(2)对象操作类中的方法   第一个参数self不用传

例:

p.work()    ==>小白在工作

3.实例化对象/实例/对象 :类名+()的过程叫实例化过程(创建一个对象的过程)

例:

p = Preson("小白", "男", 24)
print(p.__dict__)
结果:{'name': '小白', 'sex': '男', 'age': 24}

(1).类名+()产生一个实例(对象.对象空间)

(2).自动执行类中的__init__方法,将对象空间传给__init__的self参数

(3).给对象封装属性

猜你喜欢

转载自www.cnblogs.com/gxj742/p/9356081.html