zoukankan      html  css  js  c++  java
  • python 类

    • 定义类
    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
    
    • main
    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)
    

      

    初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
  • 相关阅读:
    ComboBoxEdit 数据绑定 使用模板
    ObservableCollection
    ListView.MouseDoubleClick
    Style 的查找 FindResource
    OpenFileDialog
    ItemsControl
    下拉框比较符
    ListView 控件与 内容
    测试oracle数据库连接
    MySQL ERROR 1300 (HY000): Invalid utf8 character string
  • 原文地址:https://www.cnblogs.com/forlive/p/12611027.html
Copyright © 2011-2022 走看看