Skip to Content
Odoo Meny
  • Sign in
  • Prova gratis
  • Appar
    Finanstjänster
    • Bokföring
    • Fakturering
    • Utgifter
    • Kalkylark (Affärsanalyser)
    • Dokument
    • Underskrifter
    Försäljning
    • CRM
    • Försäljning
    • Kassasystem Butik
    • Kassasystem Restaurang
    • Prenumerationer
    • Uthyrning
    Hemsidor
    • Hemsidesverktyg
    • E-handel
    • Blogg
    • Forum
    • Livechatt
    • Utbildning
    Försörjningskedja
    • Lager
    • Produktion
    • Produktens livscykel (PLM)
    • Inköp
    • Underhåll
    • Kvalitet
    HR
    • Anställda
    • Rekrytering
    • Ledighet
    • Utvärderingar
    • Rekommendationer
    • Fordon
    Marknadsföring
    • Sociala medier
    • E-postmarknadsföring
    • Sms-marknadsföring
    • Evenemang
    • Automatiserad marknadsföring
    • Enkäter
    Tjänster
    • Projekt
    • Tidrapporter
    • Fältservice
    • Kundtjänst
    • Planering
    • Tidsbokningar
    Produktivitet
    • Diskutera
    • Godkännanden
    • IoT
    • VoIP
    • Kunskap
    • WhatsApp
    Community-appar Odoo Studio Odoo Cloud
  • Branscher
    Butiker
    • Bokaffärer
    • Klädbutiker
    • Möbelaffärer
    • Mataffärer
    • Byggvaruhus
    • Leksaksaffärer
    Restaurang & Hotell
    • Barer och pubar
    • Gourmetrestauranger
    • Snabbmatsrestauranger
    • Gästhus
    • Dryckesdistributörer
    • Hotell
    Fastigheter
    • Fastighetsbyråer
    • Arkitektfirmor
    • Byggföretag
    • Fastighetsägare
    • Trädgårdsmästare
    • Bostadsrättsföreningar
    Hitta en konsult
    • Redovisningsbyrå
    • Odoo Partner
    • Reklambyråer
    • Advokatbyråer
    • Rekrytering
    • Revisioner och certifieringar
    Produktion
    • Textilproduktion
    • Metallproduktion
    • Möbelproduktion
    • Livsmedelsproduktion
    • Bryggerier
    • Företagsgåvor
    Hälsa & Fitness
    • Sportklubbar
    • Optiker
    • Träningscenter
    • Hälsovård
    • Apotek
    • Frisörsalonger
    Hantverk
    • Hantverkare
    • IT-utrustning och kundtjänst
    • Solenergi
    • Skomakare
    • Städtjänster
    • VVS-tjänster
    Övrigt
    • Ideella föreningar
    • Miljöförvaltningar
    • Uthyrning av reklamtavlor
    • Fotografer
    • Cykeluthyrning
    • Återförsäljare av mjukvara
    Upptäck alla Branscher
  • Community
    Utbildning
    • Instruktionsvideor
    • Dokumentation
    • Certifiering
    • Utbildningar
    • Blogg
    • Podcast
    Lär dig med oss
    • Workshops
    • Företagsspelet Scale Up!
    • Studiebesök hos Odoo
    Mjukvaran
    • Ladda ner
    • Jämför utgåvor
    • Tidigare versioner
    Samverkan
    • GitHub
    • Forum
    • Evenemang
    • Översättningar
    • Bli en partner
    • Partnertjänster
    • Registrera din redovisningsbyrå
    Våra tjänster
    • Partners
    • Revisorer
    • Träffa en rådgivare
    • Implementering
    • Kundrecensioner
    • Kundtjänst
    • Uppgraderingar
    GitHub Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Boka en demo
  • Priser
  • Hjälp
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

Override Method without class?

Subscribe

Get notified when there's activity on this post

This question has been flagged
pythonoverriding
4 Replies
17113 Views
Avatar
Harsh Dhaduk

Hi All,

How to override method without class?

e.g

In a.py file have one method

def abc(self):
     print "Called ABC()"

 

In b.py i want to override a.py file's abc() method.

 

=================================
I clear about.

1) I am not talking about Class method override.
2) And no any class use in a.py and b.py
3) It is possible to override abc() method without class ?

 

Thanks in advance,
Harsh Dhaduk
 

3
Avatar
Discard
Harsh Dhaduk
Author

PS :- Monkey Patch using hook https://youtu.be/8K1o9Xhk4gY

Avatar
Ivan
Best Answer

from a import abc

def new_method():

    ----

abc = new_method

OR

import a

def new_method():

    ----

a.abc = new_method

it's called monkey patching.  You can search the net for other examples, but here is one: http://stackoverflow.com/questions/19545982/monkey-patching-a-class-in-another-module-in-python

4
Avatar
Discard
Ben Bernard

method abc is in module a

Ivan

Good catch Ben. I've updated the answer.

Avatar
Baiju KS
Best Answer

Hi Harsh,

To override a method you have to understand the object to which that method belongs.

If method abc() belongs to class object 'test'

ie. in .py file it will be like:-

class test (osv.osv):

    _name = 'test'

    def abc():

        return True

 

If you want to override that function you have to define a class to inherit that object and then define method with same name. Eg:-

IN b.py file

class test(osv.osv):

    _inherit = 'test'

    def abc():

        return True

 

Here we overrided the method abc()

1
Avatar
Discard
Pascal Tremblay

Thanks a lot!

Avatar
Harsh Dhaduk
Author Best Answer

Hi Baiju i am not talking about class method override.

Hi Ivan have other examples like monkey patching?

Hi Bole i tried that one but not working.

 

Thanks for your replay.

1
Avatar
Discard
Ivan

Google python monkey patch and you can get a lot of examples.

Avatar
Bole
Best Answer

try in b.py:

import a
def ab1(self...):
   something here

a.abc = ab1

 

0
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
new python env
python
Avatar
0
mars 25
2820
What means "Too many values to unpack" message? Solved
python
Avatar
Avatar
Avatar
Avatar
Avatar
4
apr. 24
176652
have no data in screen. read data in my own module from different model
python
Avatar
0
dec. 23
3318
How to insert value to a one2many field in table with create method? Solved
python
Avatar
Avatar
Avatar
Avatar
Avatar
5
juli 25
233781
how to disable add product in sales of odoo 12
python
Avatar
Avatar
1
dec. 22
4587
Community
  • Instruktionsvideor
  • Dokumentation
  • Forum
Öppen källkod
  • Ladda ner
  • GitHub
  • Runbot
  • Översättningar
Tjänster
  • Odoo.sh Hosting
  • Kundtjänst
  • Uppgradera
  • Anpassningsbara modifikationer
  • Utbildning
  • Revisorer
  • Partners
  • Bli en partner
Om oss
  • Vårt företag
  • Varumärkestillgångar
  • Kontakta oss
  • Jobb
  • Evenemang
  • Podcast
  • Blogg
  • Kunder
  • Juridiskt • Integritet
  • Säkerhet
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo är ett affärssystem med öppen källkod som täcker alla dina företagsbehov: CRM, e-handel, bokföring, lager, kassasystem, projektledning, och så vidare.

Odoos unika värdeförslag är att samtidigt vara väldigt enkel att använda men också helt integrerad.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now