首页 > 其他分享 >面试题

面试题

时间:2023-08-04 17:45:07浏览次数:31  
标签:__ f1 面试题 self Foo class def

1、你都了解哪些编程语言,以及他们之间的区别?

  c/c++ :大学的时候学过c语言(包含c++),很多语言的底层实现都是基于c,执行效率高,存在问题:自己得做内存管理,开辟还要销毁,对代码要求比较高,内部提供的功能少,它甚至没有字符串。很多功能都需要手动实现

  java :高级语言,全球应用最多,比较好的编程语言,很多企业级应用都会选择java【开源】

  c# : c shop 是微软开发的编程语言,非常非常简单优雅,在windows上开发的代码部署的时候需要放在windows server 上,最大弊端是window系统花钱。【不开源】,占比越来越低。

  PHP:一般用于写网站,写web,快速搭建一个网站 

  python:非常简洁(比java和c#简洁,java和c#没有函数,必须写个类,学习代价比较大),入门简单,很少的代码做很多的事情【一开始就开源】

  Go lang :语法和c比较接近,处理并发时比较有优势  +docker   (docker 基于go来做的)

 

2、如果面试的时候有一个简单的功能让你用指定语言实现,也可直接用python实现

 

3、构造函数和析构函数

  构造函数 用于创建对象的函数

  析构函数 用于销毁对象的函数

class Foo(object):
    def __new__(self, *args, **kwargs): # 这个__new__就是构造函数
        pass
class Foo(object):
    # 这个__new__就是构造函数
    def __new__(self, *args, **kwargs):
        pass

    #默认有个__del__函数,就是析构函数
    def __del__(self, *args, **kwargs):
        pass

obj=Foo()  # 构造
del obj    #销毁

 

3、重写和重载的区别

# 重载:函数名相同,而参数的个数、类型、返回值不一样就叫重载,在python里面不支持,其他语言支持
class Foo(object):
    def f1(self,a1):
        return 123
    def f1(self,a1,a2):
        return 123

# 重写:在子类中,对父类中的方法进行重写
class Foo(object):
    def f1(self):
        print(123)

class Bar(Foo):
    def f1(self):
        print(666)

 

4、什么是接口以及和类的区别

# 接口泛指其他语言的接口,python里面没有,如在java里面 以下一个接口,里面有两个方法
Interface IPerson(object)  # 这就是一个接口,以大写I开头
    def f1(self,a1,a2)      # 接口里可以定义方法可以传参数  规定可以定义方法但一行代码都不能写
    def f1(self,a1,a2)

# public interface Predator{
#   boolean chasePrey(Prey p)
#   void eatPrey(Prey p)
# }
#接口是以interface关键字开头,内部可以定义方法,但方法中不用写具体方法,他的作用,专门用于约束实现他的类。接口里面有什么方法,类里面也要有这些方法,python里面没有接口

class UserInfo(): # UserInfo类实现了Iperson接口
    def f1(self,a1):
        return 123
    def f2(self,a2):
        return 666

5、 python 的类支持多继承,其他语言不支持多继承(C语言可以)

# python
class Foo(Base,NewBase):
    pass
# 其他,只能顺着下来
class Base:
    pass
class NewBase(Base):
    pass
class Foo(NewBase):
    pass

6、在其他语言中,可以实现多个接口,不可以继承多个类

# java
interface IBase:
    def f1(self)

interface INewBase:
    def f2(self)

class Foo(IBase,INewBase):
    def f1(self):
        pass
    def f2(self):
        pass

7、抽象类和抽象方法

# java
class Base(object):
    pass
class Foo(Base):
    pass
# java 抽象类
abstract class Base(object) # 抽象类
    def f1(self): # 普通方法
        print(123)
    def abstract f2(self): # 抽象方法,内部不能写任何代码
        print(666)
class Foo(Base):  # 一旦有一个类继承抽象类,必须重写抽象方法
    def f2(self):# 重写抽象方法
        print(123)

# 上面的类对子类有约束,还为子类提供方法f1
obj=Foo()
obj.f2()
obj.f1()

 

标签:__,f1,面试题,self,Foo,class,def
From: https://www.cnblogs.com/avivi/p/17606613.html

相关文章