黄海刺虎,unihub总裁,onet凡兔
类:是具有相同属性的技能的一类实物
对象:实例化的一个类,是类的具体体现
class Person: '''内容''' animal='高级动物' soul='有思想' #animal,soul为静态变量 def __init__(self,name,sex,eye,high,weight): #这是构造方法 self.name=name #属性 self.sex=sex self.eye=eye self.high=high self.weight=weight print(666) def work(self): #动态变量,动态方法,方法 print(self) print('人会工作')
print(Person.__dict__) 结果为:{'__module__': '__main__', '__doc__': '内容', 'animal': '高级动物', 'soul': '有思想', '__init__': <function Person.__init__ at 0x000002100833A8C8>, 'work': <function Person.work at 0x000002100833A950>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>}
print(Person.__dict__['animal']) 结果为: 高级动物
print(Person.animal) 结果为: 高级动物
Person.kind='有性格' print(Person.kind) 结果为: 有性格
del Person.kind
print(Person.__dict__['work'](11)) 结果为: 11 人会工作 None
Person.work(222) 结果为: 222 人会工作
只要创建一个类,里面的内容就已经加载到内存中
对象:类名() 实例化一个对象
**实例化:类名加括号就是实例化,会自动触发__init__函数的运行,可以用它来为每个实例定制自己的特征
(1)实例化一个对象,在内存中产生一个对象空间
(2)自动执行init方法,并将这个空间对象<main.Person object at 0x0000000001F5ABE0> 传给self
(3)通过构造方法里的代码给空间对象添加一些属性,并返回给对象**
例如:
p1=Person('张三','男','大眼睛',176,170) print(p1.__dict__) 结果为: {'name': '张三', 'sex': '男', 'eye': '大眼睛', 'high': 176, 'weight': 170}
p2=Person('李四','男','小眼睛',170,170) print(p2.__dict__) 结果为: {'name': '李四', 'sex': '男', 'eye': '小眼睛', 'high': 170, 'weight': 170}
print(p2.name) 结果为: 李四
p2.color='黄皮肤' print(p2.color)
del p2.name print(p2.__dict__) 结果为: {'sex': '男', 'eye': '小眼睛', 'high': 170, 'weight': 170, 'color': '黄皮肤'}
print(p2.__dict__) p2.name='王麻子' print(p2.__dict__) 结果为: {'name': '李四', 'sex': '男', 'eye': '小眼睛', 'high': 170, 'weight': 170} {'name': '王麻子', 'sex': '男', 'eye': '小眼睛', 'high': 170, 'weight': 170}
print(p2.__dict__) {'name': '李四', 'sex': '男', 'eye': '小眼睛', 'high': 170, 'weight': 170}
print(p2.animal) 结果为: 高级动物
p2.work() 结果为: <__main__.Person object at 0x0000025324099D68> 人会工作 print(p2.__dict__) {'name': '李四', 'sex': '男', 'eye': '小眼睛', 'high': 170, 'weight': 170}
Person.work('abc') abc 人会工作
class Person: animal='高级动物' soul='有思想' name='孙悟空' def __init__(self,name,sex,eye,high,weight): self.name=name self.sex=sex self.eye=eye self.high=high self.weight=weight print(666) def work(self,job): print('人会工作') p1=Person('alex','女','小眼睛',178,160) print(p1.name) print(p1.soul) print(p1.__dict__) print(p1.eye) p1.work('IT') print(p1.__dict__) 结果为: 666 alex 有思想 {'name': 'alex', 'sex': '女', 'eye': '小眼睛', 'high': 178, 'weight': 160} 小眼睛 人会工作 {'name': 'alex', 'sex': '女', 'eye': '小眼睛', 'high': 178, 'weight': 160}
可以看到self约定俗成叫self,不能改变
通过实例化对象查找属性时,先从对象空间找,没有则通过类对象指针从类空间找。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
python求numpy中array按列非零元素的平均值案例
网友评论