python怎么创建新对象

图片[1]-python怎么创建新对象-uusu优素-乐高,模型,3d打印,编程

面向对象中两个重要的概念:

1.类 :对一类事物的描述,是抽象的、概念上的定义。比如做石膏像的模型
2.对象:实际存在的该类事物的每个个体,因而也称实例(instance)。比如石膏像
二者的关系:对象是由类派生的、创建的。一个类可以创建无穷多个对象,每个对象都属于类。

1.创建类和创建类对象

1.创建类,类主要由类名,属性,方法组成,当然创建一个类时,属性和方法可以选择的。
classPerson:
defcry(self):#类方法:跟函数的定义类似,但是self参数自带的,这也是类的方法和普通方法的区别。
print("Icancry")
defspeak(self):
print("Icanspeak:%s"%(self.word))

---------创建对象-----------------------------------------------------------------------
tom=Person()#创建对象,直接类名(),不用像java中还要new,所以python更加简洁
tom.cry()#调用对象的方法
tom.word="hahah"
tom.speak()
tom.age=18#给对象添加属性,属性不用在类定义时声明,但这种方法给对象赋值麻烦,每个对象都要赋值。
tom.age=19#上面已经给tom添加过age属性,再次属于调用,重新赋值。

----------执行结果-------------------------------------------------------------------------
'''
Icancry
Icanspeak:hahah
'''

2.给类初始化属性,在对象创建时就给对象设定了一些默认值。这样不用给每个对象都添加属性了,比如每个Person都是china,sex都是
male.
_init_(self)该类的方法有点类似java中类的构造器,可以给类的对象赋初始值。
------------------------------------------------------------------------------------------
classPerson1:
def__init__(self):#_init_(self),主要给类初始化一些属性,对象创建时自动调用该方法执行
self.country="china"
self.sex="male"

defspeak(self):
print("Iamfrom%s,wuwuwuwuu"%self.country)
-------------创建对象----------------------------------------------------------------------
jack=Person1()
jack.speak()
print(jack.country,jack.sex)

tom=Person1()
tom.speak()
print(tom.country,tom.sex)
--------------执行结果如下:----------------------------------------------------------------
'''
Iamfromchina,wuwuwuwuu
chinamale
Iamfromchina,wuwuwuwuu
chinamale
'''

3.属性虽然初始化了,但是固定死的,而实际每个对象的属性就不同。
所以通过初始化时调用参数的形式,给每个对象赋不同的属性值

classPerson2:
def__init__(self,name,age):
self.age=age#这种用法类似java中的this.age=age.self意思可以理解为当前对象
self.name=name#表示将当前对象传进来的参数name的值赋给当前对象的属性name
self.country="china"#还是可以给类的每个对象都赋一个默认值。

defspeak(self):
print("name=%s,age=%d"%(self.name,self.age))
-----------创建对象------------------------------------------------------------------------
p1=Person2("allen",19)
p2=Person2("sherry",22)
p3=p2#让p3=p2.对象的赋值

p1.speak()
p2.speak()

print("p1:",p1)#直接打印对象,打印的是对象在内存中地址。
print("p2:",p2)
print("p3:",p3)#发现p3的地址跟p2的地址一样。

'''执行结果如下:
name=allen,age=19
name=sherry,age=22
p1:<__main__.Person2objectat0x000001CBA3508BE0>
p2:<__main__.Person2objectat0x000001CBA3508CF8>
p3:<__main__.Person2objectat0x000001CBA3508CF8>
'''
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容