一、__call__方法的对象
定义了__call__方法的对象,称为“可调用对象”,即__call__()方法能够让类的实例对象,像函数一样被调用
代码演示:
class count:
def __init__(self,a):
self.a=a
def __call__(self,b):
x=self.a+b
print(x)
def print(self):
print (self.a)
Count=count("you")
Count.print()
Count(" are good")
结果:
you
you are good
补充:如果只看 Count(" are good") 是无法知道它是函数还是一个类实例;直接调用实例名也是__call__()方法起的作用。
二、私有属性和私有方法
注意要点:
(1)通常我们约定,两个下划线开头的属性是私有的。
(2)类内部可以访问私有属性(方法),类外部不能直接访问私有属性(方法)
(3)类外部可以通过“_类名__私有属性(方法)”访问私有属性(方法)
代码1:
class Employee:
def __init__(self,name,age):
self.name=name
self.age=age
a=Employee("小明","20")
print(a.name)
print(a.age)
结果:
小明
20
如果对年龄进行私有的话:
class Employee:
def __init__(self,name,age):
self.name=name
self.__age=age
a=Employee("小明","20")
print(a.name)
print(a.age)
结果:
如果想访问的话可以:
class Employee:
def __init__(self,name,age):
self.name=name
self.__age=age
a=Employee("小明","20")
print(a.name)
print(a._Employee__age)#可以看上面注意要点内部红字
结果:
小明
20
代码2:
class Employee:
def __init__(self,name,age):
self.name=name
self.__age=age
def __count(self):
print("中国速度")
a=Employee("小明","20")
print(a.name)
print(a._Employee__age)
a._Employee__count()
结果:
小明
20
中国速度
三、静态方法
要点:
1、Python中允许定义与:类对象,无关的方法,称为“静态方法”。
2、”静态方法“和模块中定义普通函数没有区别,著不过"静态方法"放到了“类的名字空间里面”,xuyaotongguo“类调用”。
3、静态方法通过装饰器@staticmethod来定义,格式如下:
@staticmethod
def 静态方法名([形参列表]):
函数体
补充:
我总结我所有python笔记于一篇博客里:
点击即可进入Python学习笔记大总结(我把我所有python笔记做了总结和学习顺序,点击即可进入相关博客。希望可以便于你们阅读)