标签:super net false turned cmd 数字 一个 on() 地址
1 class Person: 2 def __init__(self, name): 3 self.name = name 4 print(‘%s 被初始化‘ % self.name) 5 6 def __del__(self): 7 print("%s 被删除 " % self.name) 8 9 10 p1 = Person("奶茶") 11 p2 = Person("蛋糕") 12 13 print(‘xixi‘) 14 del p1 15 print(‘haha‘) 16 17 # 奶茶 被初始化 18 # 蛋糕 被初始化 19 # xixi 20 # 奶茶 被删除 21 # haha 22 # 蛋糕 被删除
1 class Person: 2 def __init__(self, name, sex, age, sister=None, brother=None): 3 self.name = name 4 self.sex = sex 5 self.age = age 6 self.sister = sister 7 self.brother = brother 8 9 def __call__(self): # 获取.... 10 if self.sex == "boy": 11 print(self.sister) 12 else: 13 print(self.brother) 14 15 def get_age(self): 16 print(self.age) 17 18 19 p1 = Person("xixi", "boy", 18, "haha") 20 print(p1.name) # xixi 21 p1.get_age() # 18 22 p1() # haha
1 class Person: 2 def __init__(self, name): 3 self.name = name 4 5 def __str__(self): 6 return "我是str" 7 8 def __repr__(self): 9 return "我是repr" 10 11 12 p1 = Person("xixi") 13 # repr&str方法都没有 14 # print(p1) # <__main__.Person object at 0x000000000214D198> 15 16 # repr&str方法都有 17 # print("%s" % p1) # 我是str 18 # print("%r" % p1) # 我是repr 19 20 # 只有repr方法: 21 # print("%s" % p1) # 我是repr 22 # print("%r" % p1) # 我是repr 23 24 # 只有str方法 25 # print("%s" % p1) # 我是str 26 # print("%r" % p1) # <__main__.Person object at 0x00000000026BD198> 27 28 print(repr(p1)) 29 print(str(p1))
1 class Person: 2 def __new__(cls, *args, **kwargs): # 必须有返回值: 创建好的对象,类的实例 3 print("我是new") 4 return super().__new__(cls) 5 6 def __init__(self): 7 print("我是init") 8 9 10 p = Person() # 创建对象 11 # 我是new 12 # 我是init 13 print(p) # <__main__.Person object at 0x0000000001EA8358>
1 a = "12345" 2 b = "12345" 3 4 print(a == b) # True 5 print(a is b) # True 6 print(id(a)) # 4772224 7 print(id(b)) # 4772224 8 9 10 list1 = [1, 2, 3, 4] 11 list2 = [1, 2, 3, 4] 12 print(list1 == list2) # True 13 print(list1 is list2) # False 14 print(id(list1)) # 63488968 15 print(id(list2)) # 63184328 16 17 18 class Person: 19 def __init__(self, name, age): 20 self.name = name 21 self.age = age 22 23 def __eq__(self, other): # other, 另外一个要进行比较的对象 24 if self.__dict__ == other.__dict__: # 如果当前对象和被比较对象的所有属性值相等, 我们就认为这俩对象相等 25 return True 26 else: 27 return False 28 29 30 p1 = Person(‘xixi‘, 6) 31 p2 = Person(‘xixi‘, 6) 32 print(p1 == p2) # True 33 print(p1 is p2) # False 34 print(id(p1)) # 43097840 35 print(id(p2)) # 43101544
1 # 设计二维坐标类Point判断2个坐标是否相等, 2 # 并能根据hash函数计算坐标的哈希值; 3 4 class Point: 5 def __init__(self, x, y): 6 self.x = x 7 self.y = y 8 9 def __eq__(self, other): 10 if self.x == other.x and self.y == other.y: 11 return True 12 else: 13 return False 14 15 def __hash__(self): 16 return hash((self.x, self.y)) 17 18 point1 = Point(3, 4) 19 point2 = Point(3, 4) 20 21 print(point1 == point2) # True 22 23 print(hash(point1)) # 3713083796997400956 24 print(hash(point2)) # 3713083796997400956
标签:super net false turned cmd 数字 一个 on() 地址
原文地址:https://www.cnblogs.com/Tree0108/p/12112896.html