1.私有:只在对象内使用的方法和属性
外部不能调用私有属性和私用方法
class Women:
def __init__(self, name):
self.name = name
self.__age = 18
def __secret(self):
print("%s 的年龄是%d" % (self.name, self.__age))
nv = Women("小红")
print(nv._Women__age)#_Women可以强制调用私有属性
nv._Women__secret()
对象的三大特性
2.继承
class 类名(父类)
(1)在子类中重写方法
class Animal:
def run(self):
print("跑")
def eat(self):
print("吃")
class Dog(Animal):
def run(self):
print("我的run方法会覆盖Animal的run")
(2)用super(). 调用原来在父类中的方法
class Animal:
def run(self):
print("跑")
def eat(self):
print("吃")
class Dog(Animal):
def run(self):
# 1. 针对子类写方法
print("我的run方法会覆盖Animal的run")
# 2. 用super(). 调用原来在父类中的方法
super().run()
# 3. 用父类调用父类的方法
Animal.run(self)
xiaotianquan = Dog()
xiaotianquan.run()
运行结果:
3.(1)定义类方法:
@classmethod 声明
def Show(cls): 不是self 而是cls
…
class Tool:
count = 0
@classmethod
def Show_tool_count(cls):
print("工具对象的数量:%s"%cls.count)
def __init__(self,name):
self.name = name
Tool.count +=1
tool1 = Tool("斧头")
tool2 = Tool("榔头")
Tool.Show_tool_count()
(2) 定义静态方法: 不访问实例属性实例方法,也不访问类属性类方法
@staticmethod 声明
def Run(): 不是self 而是空的
…
class Tool:
count = 0
@classmethod
def Show_tool_count(cls):
print("工具对象的数量:%s"%cls.count)
@staticmethod
def Run():
print("快跑")
def __init__(self,name):
self.name = name
Tool.count +=1
tool1 = Tool("斧头")
tool2 = Tool("榔头")
Tool.Show_tool_count()
Tool.run()