Rumah >pembangunan bahagian belakang >Tutorial Python >全面了解python中的类,对象,方法,属性

全面了解python中的类,对象,方法,属性

高洛峰
高洛峰asal
2017-03-28 15:36:561482semak imbas

下面小编就为大家带来一篇全面了解python中的类,对象,方法,属性。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

">

python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。。。。。。

我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征。它会汪汪叫,会摇尾巴等是它的行为。

我们在描述一个真实对象(物体)时包括两个方面:

它可以做什么(行为)

它是什么样的(属性或特征)。

在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)

结论:对象=属性+方法

在python中,把具有相同属性和方法的对象归为一个类(class

比如人类,动物,植物等等,这些都是类的概念。

类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。

>>> class people:
...   def speak(self):
...       print ("hello!")
...
'''

定义一个people类,定义一个speak方法,但没有定义属性,

因为属性不属于类,而是属于各个类的实例。也就是说属于对象。

因此我们可以给每个实例设置不同的属性

'''  
>>> class people:          #类  
...   def speak(self):      #方法        
...       print ("hello!")        
...
>>>
>>> jack = people()  #创建jack实例
>>> tom = people()  #创建tom实例
>>> import tab    #导入table键功能模块
>>> jack.      #输入jack.,可以看到以下方法
jack.class  jack.doc   jack.module jack.speak(  
>>> jack.speak()  #引用speak方法
hello!
>>> jack.age=39      #添加age属性
>>> jack.height=120    #添加height属性
>>> jack.
jack.class  jack.module jack.height  
jack.doc   jack.age     jack.speak(  
>>> jack.height
120
>>> jack.age
39
'''

#初始化对象

创建类时,可以定义一个特定的方法,名为init(),只要创建这个类的一个实例

就会运行这个方法。可以向init()方法传递参数,

这样创建对象时就可以把属性设置为你希望的值

init()这个方法会在创建对象时完成初始化,

'''
>>> class peo:
...   def init(self,name,age,sex):
...       self.Name = name
...       self.Age = age
...       self.Sex = sex
...   def speak(self):
...       print "my name" + self.Name
...
>>>
实例化这个类的对象时:
>>> zhangsan=peo("zhangsan",24,'man')
>>> print zhangsan.Age
24
>>> print zhangsan.Name
zhangsan
>>> print zhangsan.Sex
man
# ----------
>>> print zhangsan

'''

要让print能打印出来,就得使用str方法

str()这个方法告诉python在打印(print)一个对象时,具体显示什么内容

'''
#! /usr/bin/python
class peo:
 def init(self,name,age,sex):
   self.Name = name
   self.Age = age
   self.Sex = sex
 def speak(self):
   print "my name" + self.Name
 def str(self):
   msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
   # msg='my name is: ' +self.Name+ ","+ "my age is: " + str(self.Age) +','+ "my sex is:" +self.Sex
   return msg
shanghai=peo('shanghai','23','man')
# shanghai=peo('shanghai',23,'man')
'''
msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex

此处23是年龄,但被转成了字符串,因为self.Age定义的是字符串

如果不将23转义,则会报错

如果希望在程序中就事先转义,需要使用str(self.Age)

'''
print shanghai

'''
之前多次用到self这个形参
类就好比是一张蓝图,使用一个类可以创建多个对象实例,
speak()方法在被调用时,必须知道是哪个对象调用了它.

这里self参数就会告诉方法是哪个对象来调用的.这称为实例引用。
zhangsan。speak()就好比写成了peo.speak(zhangsan)
'''


Atas ialah kandungan terperinci 全面了解python中的类,对象,方法,属性. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn