class People:
classdx = '类变量'
def __init__(self,name,age):
self.name = name
self.age = age
self.sex = 15
def dxmethod(self):
print(self)
@classmethod
def classfunction(cls):
print(cls)
@staticmethod
def staticfunction():
print('不用参数的类方法')
print('类似类方法的表达 ' + People.classdx)
def __call__(self,mes):
print(mes)
def __new__(cls, *args, **kwargs):
print('在实例化对象时触发')
position = object.__new__(cls)
return position
def __del__(self):
print('删除{}'.format(self))
def __str__(self):
return self.name+str(self.age)
a = People('张三',18)
print(a.name)
People.classfunction()
print(People.classdx)
People.classdx = '修改全局类变量'
print(People.classdx)
People.staticfunction()
a('把对象当成函数调用')
a1 = a
import sys
print(sys.getrefcount(a))
del a1
print(sys.getrefcount(a))
print(a)
class student:
def __init__(self,name):
self.name = name
self.__age = 18
def __str__(self):
return str(self.__age)
@property
def age(self):
return self.__age
@age.setter
def age(self,age):
self.__age = age
s = student('李四')
s.__age = 19
print(s)
s.age = 100
print(s.age)
print()
print(s.__dir__())
class Computer:
def __init__(self,name,price):
self.name = name
self.price = price
def play(self):
print('玩电脑')
class Mouse(Computer):
def __init__(self,name,price,brand):
super().__init__(name, price)
self.brand = brand
super(Mouse, self).play()
m = Mouse('罗技鼠标',1000,'罗技')
print(m.name)
m.play()
class A:
def test(self):
print('AAA')
class B(A):
def test(self):
print('BBB')
class C(A):
def test(self):
print('CCC')
class D(B,C):
def test(self):
print('DDD')
d = D()
d.test()
print(D.__mro__)
class People:
def __init__(self,name):
self.name = name
def feed(self,pet):
if isinstance(pet,Pet):
print('{}在喂{}'.format(self.name, pet.name))
else:
print('{}会吃人'.format(pet.name))
class Pet:
def __init__(self,name):
self.name = name
def run(self):
print(self.name + '在跑')
class Cat(Pet):
pass
class Tigter:
def __init__(self,name):
self.name = name
people = People('张三')
pet = Pet('李四')
cat = Cat('王五')
tiger = Tigter('赵六')
people.feed(pet)
people.feed(cat)
people.feed(tiger)