本文共 3029 字,大约阅读时间需要 10 分钟。
??????????????????Python??????????????????????????????????????????????????????????????????????
?Python????????????????????????????????__??????????????????????????????????????
?????????????JustCounter???__secretCount???????publicCount???????
class JustCounter: __secretCount = 0 # ???? publicCount = 0 # ???? def count(self): self.__secretCount += 1 self.publicCount += 1 print(self.__secretCount)
????counter = JustCounter()?????
count()?????????1publicCount?????????2__secretCount???AttributeError???????????????????????Python????????????????????????????????
print(counter._JustCounter__secretCount)????????print(counter.__secretCount)???????Python???????BIF?Built-in Functions????????????????????????????????????????
issubclass()issubclass(class, classinfo)????class???classinfo??????????????????classinfo????????????????????
???
class A: passclass B(A): passprint(issubclass(B, A)) # ??Trueprint(issubclass(B, B)) # ??Trueprint(issubclass(A, B)) # ??Falseprint(issubclass(B, object)) # ??True
isinstance()isinstance(object, classinfo)?????????????????? inheritance chain??type()???isinstance()????????
???
a = 2print(isinstance(a, int)) # ??Trueprint(isinstance(a, str)) # ??Falseprint(isinstance(a, (str, int, list))) # ??Trueclass A: passclass B(A): passprint(isinstance(A(), A)) # ??Trueprint(type(A()) == A) # ??Trueprint(isinstance(B(), A)) # ??Trueprint(type(B()) == A) # ??False
hasattr()hasattr(object, name)????????????????
???
class Coordinate: x = 10 y = -5 z = 0point1 = Coordinate()print(hasattr(point1, 'x')) # ??Trueprint(hasattr(point1, 'y')) # ??Trueprint(hasattr(point1, 'z')) # ??Trueprint(hasattr(point1, 'no')) # ??False
getattr()getattr(object, name, default)?????????????????
???
class A(object): bar = 1a = A()print(getattr(a, 'bar')) # ??1print(getattr(a, 'bar2', 3)) # ??3print(getattr(a, 'bar2')) # ??AttributeError
setattr()setattr(object, name, value)?????????????????????
???
class A(object): bar = 1a = A()print(getattr(a, 'bar')) # ??1setattr(a, 'bar', 5)print(a.bar) # ??5setattr(a, "age", 28)print(a.age) # ??28
delattr()delattr(object, name)??????????
???
class Coordinate: x = 10 y = -5 z = 0point1 = Coordinate()print('x = ', point1.x) # ??x = 10print('y = ', point1.y) # ??y = -5print('z = ', point1.z) # ??z = 0delattr(Coordinate, 'z')print('--?? z ???--') # ??--?? z ???--print('x = ', point1.x) # ??x = 10print('y = ', point1.y) # ??y = -5 property()property([fget[, fset[, fdel[, doc]]])????????????????fget?fset?fdel??????????????????????
???
class C(object): def __init__(self): self.__x = None def getx(self): return self.__x def setx(self, value): self.__x = value def delx(self): del self.__x x = property(getx, setx, delx, "I'm the 'x' property.")cc = C()cc.x = 2print(cc.x) # ??2del cc.xprint(cc.x) # ??AttributeError
????????????????????????????????????????????????????????????????????
转载地址:http://tykp.baihongyu.com/