eg:
class ClassA():
var1 = 100
var2 = 0.01
var3 = '两点水'
def fun1():
print('我是 fun1')
def fun2():
print('我是 fun1')
def fun3():
print('我是 fun1')
1)@classmethod注解(声明为类方法,cls为关键字):
eg:
class ClassA():
var1 = '123'
@classmethod
def fun1(cls):
print('原参数的值:' + cls.var1)
cls.var1 = input('请输入要修改的值:')
print('修改后的值:' + cls.var1)
cls.var2 = input('要增加的值:')
print('增加后的值:' + cls.var2)
ClassA.fun1()
2)类的实例化(self关键字):
eg:
class ClassC():
var1 = '111'
def fun1(self):
print('var1 的值为:' + self.var1)
ob = ClassC()
ob.fun1()
print(ob.var1)
3)初始化函数:
def __init__(self,[...):
4)析构函数:
def __del__(self,[...):
5)继承:
eg:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class UserInfo(object):
lv = 5
def __init__(self, name, age, account):
self.name = name
self._age = age
self.__account = account
def get_account(self):
return self.__account
@classmethod
def get_name(cls):
return cls.lv
@property
def get_age(self):
return self._age
class UserInfo2(UserInfo):
def __init__(self, name, age, account, sex):
super(UserInfo2, self).__init__(name, age, account)
self.sex = sex;
if __name__ == '__main__':
userInfo2 = UserInfo2('两点水', 23, 347073565, '男');
# 打印所有属性
print(dir(userInfo2))
# 打印构造函数中的属性
print(userInfo2.__dict__)
print(UserInfo2.get_name())
6)属性和方法的访问控制(_agr:私有属性,靠自觉控制,__agr:私有属性,无法直接访问,可间接访问):
eg:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
def __init__(self, name, age, account):
self.name = name
self._age = age
self.__account = account
def get_account(self):
return self.__account
if __name__ == '__main__':
userInfo = UserInfo('两点水', 23, 347073565);
# 打印所有属性
print(dir(userInfo))
# 打印构造函数中的属性
print(userInfo.__dict__)
print(userInfo.get_account())
# 用于验证双下划线是否是真正的私有属性
print(userInfo._UserInfo__account)