赞
踩
类属性:定义在类里面,函数外面
访问:类.属性名称 实例.类属性名称`
class Dog: name='小黑' # 类属性 __dog_color = '白色' # 类私有属性 def __init__(self): self.color = '黑色' #实例属性 self.__kind='中华田园犬' # 实例私有属性 print('初始化方法自动调用了吗???') print(self) # 实例方法 def eating(self): print(Dog.name,'正在吃骨头。。。') print('狗的颜色',self.color) self.sleep() if __name__ == '__main__': # 类实例化 # Dog 类 Dog().eating() a=Dog() #类实例 a.eating() #实例.类属性名称 print(a.name) #类外面:类实例.名称 print(a.color)
实例属性:
定义在__init__(初始化方法,可有可无)
中,self.xxxx
访问:实例属性名称
在类里面:self.xxxx
类外面:类实例.名称
实例属性需要实例化之后才能访问
class Teacher:
age = 20
def __init__(self, name, age, subject):
# 实例化属性 name、age 和 subject
self.name = name
self.age = age
self.subject = subject
t = Teacher('Dzreal', 25, 'PE')
print(t.age) # 25
del t.age # 删除实例属性后,自动调用类属性
print(t.age) # 20
init__是用来完善对象的,在对象生成之后调用
实例属性:定义在__init(初始化方法,可有可无)中,self.xxxx
class Teacher:
def __init__(self, name, age, subject):
self.name = name
self.age = age
self.subject = subject
并不是所有的属性都可以被外部访问,不能被外部访问的属性就叫私有属性
伪私有属性是通过给属性名添加单下划线 _前缀来实现的。
可以访问,但不要随意访问
私有属性是通过给属性名添加双下划线 __ 前缀来实现的。
一般不可访问,强行访问的话,可以通过 实例._类名__attrname来访问
class Teacher: def __init__(self, name, age, subject): # 定义一个私有属性,名称为 _name self.__name = name # 定义一个公有属性,名称为 age self.age = age # 定义一个受保护的属性,名称为 _subject self._subject = subject def get_fake_private(self): # 打印受保护的属性 print(self._subject) def get_private(self): # 打印私有属性 print(self.__name) # 实例化 Teacher 对象 t = Teacher('Dzreal', 25, 'PE') # 通过实例方法访问私有属性 t.get_fake_private() # PE t.get_private() # Dzreal # 直接访问私有属性 print(t._subject) # PE print(t._Teacher__name) # Dzreal print(t.__name) # 报错 AttributeError: 'Teacher' object has no attribute '__name'
第一种:函数名称()
第二种:在类的内部,self.函数名称()
第三种:在类的外面,类实例.函数名称() == 类().函数名称()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。