class 类名:
def 函数名(self): #哪个对象调用这个方法,self就是哪个对象
语句
def 函数名(self): #类中定义函数,第一个参数要是self
语句
变量=类名() #创建类
class cat():
def __new__(self): #在init执行之前的方法,构造方法
pass
def __init__(self,newname,newage): #初始化该类时调用此方法,定义变量,
self.name=newname
self.age=newage
def __del__(self): #实例被清除时调用此方法,析构方法
pass
def __str__(self): #print实例时调用此方法
pass
def __call__(self): #实例=类名() -> 实例() 这时候调用的方法
pass
def __len__(self): #len(实例),这个时候调用的方法
pass
def __hash__(): #返回对象的hash,hash()方法调用
pass
def __eq__(): #==时候调用,在set集合去重时会被调用,先判断hash,在判断eq
pass
class cat:
__key=value #私有属性
def __方法(self): #私有方法
pass
#单继承
class 子类(父类名):
def 方法名(self): #子类方法
pass
def 父类方法名(self): #重写父类方法
重写父类方法
super().父类方法() #调用父类方法,这样不会覆盖父类方法
#多继承,调用方法查找顺序子类->父类1->父类2
class 子类(父类1,父类2)
pass
mymodule.py作为一个模块,我们希望保留末尾测试代码,即上面调用函数和类,但也不希望再导入模块的时候执行。该怎么办呢?
可以利用Python文件的一个内置属性__name__实现,如果直接运行Python文件,__name__的值是"__mian__",如果import一个模块,那么模块的__name__的值是"文件名"。
# vi mymodule.py
name = "aliang“
def count(a, b):
result = a * b
return f"{a}与{b}的乘积是: {result}“
if __name__ == "__main__":
print("我在手动执行这个程序")
print(count(6,6))
print(name)