python 对象的属性,python类的属性怎么定义
一、面向对象的概述
面向对象是一种描述业务问题和设计业务实体与实体之间关系的方法。二、类和对象1、类和对象得区别:类是客观世界中事物的抽象,而对象是类实例化后的实体。
例如,汽车模型是一个类,制造的每辆汽车都是一个对象2、类的定义:。
(1)python使用class关键字定义一个类,类名的首字母一般要大写:
例如:
ClassStudent: #定义一个学生类(2)。该类的主体由一系列属性和方法组成。
例如:
Classfruit: #定义一个类def __init__(self): #类的构造函数用于初始化类的内部状态,为类的属性设置默认值。name=name #定义名称属性self.color=color #定义颜色属性def grow (self): #定义一个函数,这个函数是类的函数,叫做方法;它至少有一个参数self print( fruit grow )3、对象的创建:。
创建对象的过程称为实例化。当一个对象被创建时,它包含三个特征:对象的句柄、属性和方法。
对象的句柄:用于区分不同的对象。
例如:
If _ _ name _ _= _ _ main _ _ #程序作为主程序运行时,Fruit=Fruit() #实例化:创建一个对象,创建一个水果对象Fruit,grow() #对象调用grow()方法4、类的属性和方法。
(1)一个类的属性:一般分为公共属性和私有属性。默认情况下,所有属性都是公共的。如果属性名以两个下划线开头,则表示私有属性,没有下划线的表示公共属性。Python的属性分为实例属性和静态属性。实例属性是以self为前缀的属性。如果构造函数中定义的属性没有用self作为前缀声明,那么该变量只是一个普通的局部变量,类中其他方法定义的变量也只是局部变量,而不是类的实例属性。
例如:
类Fruit: price=0 #定义一个类属性def _ _ init _ _(self):# constructor self . color= red # instance attribute,zone=China #局部变量带self前缀,If _ _ name _= _ _ main _ _ 不带前缀self: print (fruit.price) #调用类变量0 apple=Fruit() #实例化apple print(apple.color) #打印苹果实例的颜色red Fruit.price=Fruit.price 10 #设置类变量10 print(苹果的价格:, Str(apple.price)) #打印苹果实例的价格10bana=fruit () #实例化香蕉打印(香蕉的价格: str (banana.price)) #打印香蕉实例的价格10注意:python的类和对象可以访问类属性; 私有属性不能在类外部直接访问(属性名以两个下划线开头)。当上面的self.color=color改为self。__color=red 和print(Fruit。__color)时,将会报告一个错误。
(2)类方法:类方法也可以分为公共方法和私有方法。私有方法不能被模块外部的类或方法调用,也不能被外部的类或函数调用。使用python staticmethon或@staticmethon修饰符将普通函数转换为静态方法。
类果:price=0 #类变量def __init__(self): #构造函数self。__color=red #定义了一个私有属性,该类的外部不能直接访问def getColor(self): # class方法print(self。__color) #打印出私有变量@ staticmenthod #使用修饰符静态方法def getPrice(): #定义一个类方法print(Fruit.price) #类变量def __getPrice(): #定义一个私有函数,不能调用Fruit.price=Fruit.price 10 #类变量10 print(fruit . price)count=static method(_ _ getPrice)#定义一个静态方法if _ _ name _= _ _ main _ _ :apple=fruit()#实例化apple.getcolor .由于创建了对象apple, 静态属性price执行Fruit.count() #用列名直接调用静态方法10 banana=Fruit() #创建香蕉对象,于是静态属性第三次执行Fruit.count() #实例调用静态方法20 Fruit.getPrice() # 20 (3)内部类的使用:在类内定义类。
类中的方法可以由两种方法调用:
第一种方法是直接用外部类调用内部类,生成内部类的实例,然后调用内部类的方法。
object _ name=out class _ name . in class _ name()object _ name . method()第二种方法:先实例化外部类,再实例化内部类,最后调用内部类的方法。
out _ name=out class _ name()in _ name=out _ name。in class _ name()in _ name . method()(4)_ _ init _ _ method:构造函数用于初始化类的内部状态,并为类的属性设置默认值(可选)。如果没有提供__init__方法,python将给出一个默认的__init__方法。
类果:def __init__(self,color): self。__color=彩色打印(自身。_ _ color)def getColor(self):print(self。__color) def setColor(self,color): self。__color=彩色打印(自身。_ _ color)if _ _ name _ _= _ _ main _ _ :color= red Fruit=Fruit(color)# red Fruit . getcolor()# red Fruit . set color( blue )# blue(5)_ _ del _ _方法:使用析构函数释放对象占用的资源(可选)。如果程序中没有提供析构函数,python会在后台提供默认的析构函数;因此,只有在需要时才定义析构函数。
注意:类的内置方法还有很多,这里不做介绍了
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。