1.属性方法
看起来像属性(变量)的一个方法
class Baby(): #定义一个类
@property #装饰器,表示hhh()是一个属性方法,可以被调用
def hhh(self): #定义一个方法
return 999
bb=Baby() #实例化
print(bb.hhh) #调用属性方法,属性方法可以用装饰器@property标记
2.类变量
在类里面定义的变量。
class Baby():
country='China' #类变量,公共的变量,每个实例都可以用的
def cry(self):
print('哇哇哇')
aa=Baby() #实例化
print(aa.country) #实例化后,调用类变量
ps:类变量可以通过类名.xx来修改,例如:
Baby.country='Japan'
3.类方法
class Baby():
country='China'
def cry(self):
print('哇哇哇')
@classmethod #装饰器
def xm(cls): #xm()类方法,cls代表的就是Baby
print(cls.country)
print('我是类方法')
结论:
1.不实例化就可以直接用类名调用xm方法:
print(Baby.xm())
2.实例化之后,在通过实例化之后的对象调用xm方法:
aa=Baby() #实例化
print(aa.xm())
3.它通过cls实用类变量
4.它不能调用这个类里面的其他实例方法和实例变量
4.实例变量(成员变量)
5.实例方法
和self有关的,必须实例化之后才能调用的方法,所有的方法都需要实例化再调用
class Baby():
country='China'
def cry(self): #实例方法
print(‘哇哇哇’)
6.静态方法
@staticmethod #是静态方法,它和一个没写在类里面的函数一样
def xh():
print('这个是静态方法,它和一个没写在类里面的函数一样') #它用不了类变量,类方法,实例变量,实例方法,和普通方法一样
7.私有(私有方法/私有变量)
在变量或方法前加两个下划线,比如:__port
私有变量和私有方法,只能在类里使用,出了类就不能使用。
class My(object): #定义类
def __init__(self):
self.__host = '118.24.3.40' #私有变量
self.__port = 6379 #私有变量
self.__password = 'HK139bc&*' #私有变量
self.r = redis.Redis(host=self.__host,port=self.__port,password=self.__password)
def get(self,k):
res = self.r.get(k)
if res:
return res.decode()
return None
def __close(self): #私有方法
print('close')