python中类的属性有哪⼏种_python中的类和对象,属性和⽅
⼀、⾯向对象的概述
⾯向对象是⼀种描述业务问题、设计业务实体和实体之间关系的⽅法
⼆、类和对象
1、类和对象得区别:类是对客观世界中事物得抽象,⽽对象是类实例化后的实体
例如:汽车模型就是⼀个类,制造出来的每辆汽车就是⼀个对象
2、类的定义:
(1)python使⽤class关键字定义⼀个类,类名的⾸字母⼀般要⼤写:
例如:
class Student: #定义了⼀个Student类
(2)类的主体由⼀系列的属性和⽅法组成
例如:
class Fruit: #定义⼀个类
def __init__(self): #类的构造函数,⽤于初始化类的内部状态,为类的属性设置默认值
self.name=name #定义name属性
def grow(self): #定义⼀个函数,为类的函数,称为⽅法;它⾄少有⼀个参数self
print(‘Fruit grow’)
3、对象的创建:
创建对象的过程称为实例化,当⼀个对象被创建后,包含3个⽅⾯的特性:对象的句柄、属性和⽅法
对象的句柄:⽤于区分不同的对象
例如:
if __name__=="__main__" #当程序作为主程序运⾏
fruit=Fruit() #实例化:创建⼀个对象,创建了⼀个Fruit对象
4、类的属性和⽅法
(1)类的属性:⼀般分为公有属性和私有属性,默认情况下所有得属性都是公有的,如果属性的名字以两个下划线开始,就表⽰为私有属性,没有下划线开始的表⽰公有属性。 python的属性分为实例属性和静态属性,实例属性是以self为前缀的属性,如果构造函数中定义的属性没有使⽤self作为前缀声明,则该变量只是普通的局部变量,类中其它⽅法定义的变量也只是局部变量,⽽⾮类的实例属性。
例如:
class Fruit:
price=0 #定义⼀个类属性
def __init__(self): #构造函数
zone="China" #局部变量,不以self为前缀
if __name__=="__main__":
print(Fruit.price) #使⽤类名调⽤类变量 0
apple=Fruit() #实例化apple
lor) #打印apple实例的颜⾊ red
Fruit.price=Fruit.price+10 #将类变量+10
print("apple‘s price:",+str(apple.price)) #打印apple实例的price 10
banana=Fruit() #实例化banana
实例化类和实例化对象
print("banana‘s price:"+str(banana.price)) #打印banana实例的price 10
注意:python的类和对象都可以访问类属性;类的外部不能直接访问私有属性(属性名以两个下划线开始),当把上⾯的lor=color 改为self.__color="red",再次执⾏print(Fruit.__color)的时候就会报错
(2)类的⽅法:类的⽅法也分为公有⽅法和私有⽅法,私有⽅法不能被模块外的类或者⽅法调⽤,也不能被外部的类或函数调⽤。python 利⽤staticmethon或@staticmethon 修饰器把普通的函数转换为静态⽅法
class Fruit:
price=0 #类变量
def __init__(self): #构造函数
self.__color="red" #定义⼀个私有属性,类的外部不能直接访问
def getColor(self): #类⽅法
print(self.__color) #打印出私有变量
@staticmenthod #使⽤修饰器静态⽅法
def getPrice(): #定义⼀个类⽅法
print(Fruit.price) #打印类变量
def __getPrice(): #定义私有函数,不能被模块外的类或者⽅法调⽤
Fruit.price=Fruit.price+10 #类变量+10
print(Fruit.price)
count=staticmenthod(__getPrice) #定义静态⽅法
if __name__=="__main__":
apple=Fruit() #实例化apple
banana=Fruit() #实例化 创建banana对象,所以静态属性第三次执⾏
(3)内部类的使⽤:在类的内部定义类
内部类中的⽅法可以使⽤两种⽅法调⽤:
第⼀种:直接使⽤外部类调⽤内部类,⽣成内部类的实例,在调⽤内部类的⽅法
object_name = outclass_name.inclass_name()
hod()
第⼆种:先对外部类进⾏实例化,然后再实例化内部类,最后调⽤内部类的⽅法
out_name = outclass_name()
in_name = out_name.inclass_name()
hod()
(4)__init__⽅法:构造函数⽤于初始化类的内部状态,为类的属性设置默认值(是可选的)。如果不提供__init__⽅法,python将会给出⼀个默认的__init__⽅法
class Fruit:
def __init__(self, color):
self.__color = color
print( self.__color)
def getColor(self):
print( self.__color)
def setColor(self, color):
self.__color = color
print(self.__color)
if __name__ == ‘__main__‘:
color = ‘red‘
fruit = Fruit(color) #red
fruit.setColor(‘blue‘) #blue
(5)__del__⽅法:构析函数⽤来释放对象占⽤的资源(是可选的)。如果程序中不提供构析函数,python会在后台提供默认的构析函数;所以只有在需要的时候才会定义构析函数
————————————————
版权声明:本⽂为CSDN博主「General_单⼑」的原创⽂章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原⽂出处链接及本声明。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。